我有一個查詢,顯示每個產品的銷售數量,小計和總銷售額的總和。問題是執行時間太長。我做錯了嗎?我需要你的幫助來優化查詢。另外,我應該由sd.Product_Id或p.Product_Name分組嗎?優化計算小計,折扣和每個產品的總計的SQL查詢
SELECT p.Product_Name `Product Name`,
SUM(sd.Quantity) `Quantity Sold`,
SUM(sd.Subtotal) `Subtotal`,
SUM(sd.Discount_Value) `Total Discount`,
SUM(sd.Total) `Total`
FROM Sales_Detail sd
JOIN Product p ON sd.Product_Id = p.Id
WHERE DATE(sd.Purchase_Date) BETWEEN DATE('2017-08-21')
and date('2017-08-25')
GROUP BY p.Product_Name;
如果'DATE(sd.Purchase_Date)'正在轉換日期時間字段停止這樣做。在操作數之間指定也是日期時間類型。 – Hogan
你應該發佈它作爲答案,而不僅僅是一個評論。我原來的查詢是200+秒。現在降到3秒!謝謝! –
但是返回的原始行是1091.修改後的查詢只返回973.我仍然需要檢查哪些行被刪除 –