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 
+0

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

+0

我想获得所有记录与同一日期..当我把我的查询日期,他是递送数量返回总和 – Ali

+0

@Ali请不要在评论中发布新问题。如果你需要别的东西,请提出一个新问题。 –

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