SELECT dbo.Customers.Name, dbo.Items.Name AS ItemName,SUM(dbo.OrderDeliveryDetail.DeliveredQuantity) AS DeliveredQuantity
FROM dbo.OrderDeliveryDetail
INNER JOIN dbo.Customers ON dbo.OrderDeliveryDetail.BusinessUnitId = dbo.Customers.BusinessUnitId
INNER JOIN dbo.Items ON dbo.OrderDeliveryDetail.BusinessUnitId = dbo.Items.BusinessUnitId AND dbo.OrderDeliveryDetail.ItemId = dbo.Items.ItemId
GROUP BY dbo.Customers.Name, dbo.Items.Name, dbo.OrderDeliveryDetail.DeliveredQuantity
我正在编写此查询以获取我的查询正在执行的DeliveredQuantity的总和,但他不是DeliveredQuantity的返回总和
答案 0 :(得分:1)
从DeliveredQuantity
中删除GROUP BY
,因为它是一个汇总列:
SELECT c.Name,
i.Name AS ItemName,
SUM(d.DeliveredQuantity) AS DeliveredQuantity
FROM dbo.OrderDeliveryDetail d
INNER JOIN dbo.Customers c
ON d.BusinessUnitId = c.BusinessUnitId
INNER JOIN dbo.Items i
ON d.BusinessUnitId = i.BusinessUnitId
AND d.ItemId = i.ItemId
GROUP BY c.Name,
i.Name
答案 1 :(得分:0)
dbo.OrderDeliveryDetail.DeliveredQuantity不应该在group by子句中,因为你要对这个变量求和。
所以试试:
SELECT dbo.Customers.Name, dbo.Items.Name AS ItemName, SUM(dbo.OrderDeliveryDetail.DeliveredQuantity) AS DeliveredQuantity
FROM dbo.OrderDeliveryDetail INNER JOIN
dbo.Customers ON dbo.OrderDeliveryDetail.BusinessUnitId =dbo.Customers.BusinessUnitId INNER JOIN
dbo.Items ON dbo.OrderDeliveryDetail.BusinessUnitId = dbo.Items.BusinessUnitId AND dbo.OrderDeliveryDetail.ItemId = dbo.Items.ItemId
GROUP BY dbo.Customers.Name, dbo.Items.Name