我的sql表如下图所示。
我的查询是:
Select * from tblOrderDetails where OrderID in
(Select OrderID from tblOrders where CustomerID = 523456)
返回来自tblOrderDetails的值,如
查询将所选客户的所有销售详细信息显示为已过期。但我想在具有相同ProductID的行上使用SUM。预期输出应如下所示:
对具有相同productID,数量和价格的行进行求和,并合并行。但必须在选定的CustomerID内完成。
我用很多不同的方式尝试过SUM命令,但是无法让它工作。请建议。感谢。
答案 0 :(得分:4)
听起来你不了解GROUP BY子句。
也许这就是你想要做的事情?
Select CustomerID,ProductId,SUM(Quantity) Quantity,SUM(TotalPrice) TotalPrice from tblOrderDetails where OrderID in (Select OrderID from tblOrders where CustomerID = 523456)
GROUP BY CustomerID,ProductId
这会将同一客户的所有内容分组,然后按相同的产品分组,只允许在这些合并的子集上使用SUM
答案 1 :(得分:1)
您将希望使用SUM和GROUP BY来获得您正在寻找的结果。
SELECT ProductID, SUM(Quantity) AS Quantity, SUM(TotalPrice) AS TotalPrice
FROM tblOrderDetails
WHERE OrderID IN
(
SELECT OrderID
FROM tblOrders
WHERE CustomerID = 523456
)
GROUP BY ProductID