SQL关系查询
问题描述:
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的总和SQL关系查询
答
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
答
从GROUP BY
取出DeliveredQuantity
,因为它是一个集合列:
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
+0
感谢的sooo很多:) – Ali
SELECT dbo.Customers.Name,dbo.Items.Name AS ITEMNAME,dbo.OrderDeliveryDetail.CreatedOn,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.Create dOn – Ali
我想获得所有记录与同一日期..当我把我的查询日期,他是递送数量返回总和 – Ali
@Ali请不要在评论中发布新问题。如果你需要别的东西,请提出一个新问题。 –