2015-07-10 108 views
0
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關係查詢

回答

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 
+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請不要在評論中發佈新問題。如果你需要別的東西,請提出一個新問題。 –

1

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