我有一个查询,显示每个产品的销售数量,小计和总销售额的总和。问题是执行时间太长。我做错了吗?我需要你的帮助来优化查询。另外,我应该由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.我仍然需要检查哪些行被删除 –