diff --git a/inventory-server/scripts/metrics/vendor-metrics.js b/inventory-server/scripts/metrics/vendor-metrics.js index 33b9f5c..442ff41 100644 --- a/inventory-server/scripts/metrics/vendor-metrics.js +++ b/inventory-server/scripts/metrics/vendor-metrics.js @@ -94,15 +94,25 @@ async function calculateVendorMetrics(startTime, totalProducts, processedCount = const [batch] = await connection.query(` SELECT DISTINCT v.vendor FROM vendor_details v - FORCE INDEX (PRIMARY) - LEFT JOIN products p FORCE INDEX (idx_vendor) ON p.vendor = v.vendor AND p.updated > ? - LEFT JOIN purchase_orders po FORCE INDEX (idx_vendor) ON po.vendor = v.vendor AND po.updated > ? WHERE v.status = 'active' AND v.vendor > ? - AND (p.pid IS NOT NULL OR po.po_id IS NOT NULL) + AND ( + EXISTS ( + SELECT 1 + FROM products p + WHERE p.vendor = v.vendor + AND p.updated > ? + ) + OR EXISTS ( + SELECT 1 + FROM purchase_orders po + WHERE po.vendor = v.vendor + AND po.updated > ? + ) + ) ORDER BY v.vendor LIMIT ? - `, [lastCalculationTime, lastCalculationTime, lastVendor, BATCH_SIZE]); + `, [lastVendor, lastCalculationTime, lastCalculationTime, BATCH_SIZE]); if (batch.length === 0) break;