2017-05-20 48 views
0

我在Customers表中添加了一列TotalOrdersNorthwind SQL每個客戶的總訂單數

ALTER TABLE customers ADD TotalOrders INT NULL 

我試圖找到每個客戶的訂單總數和值添加此列,但我想不通,我需要總結究竟

INSERT INTO customers (TotalOrders) SELECT SUM(...) 
+0

您可能不想添加總訂單列。相反,可以在查詢表格時計算此列。 –

+0

恐怕這是作爲一項任務給出的,它特別聲明創建該列,然後爲其添加值 –

回答

2

我想你應該在這裏使用更新。您可以彙總每個客戶在orders表中的總訂單數,然後使用此信息更新customers表。

UPDATE t1 
SET TotalOrders = t2.TotalOrders 
FROM customers t1 
INNER JOIN 
(
    SELECT CustomerID, COUNT(*) AS TotalOrders 
    FROM orders 
    GROUP BY CustomerID 
) t2 
    ON t1.CustomerID = t2.CustomerID 
1
INSERT INTO customers (TotalOrders) 
VALUES(SELECT SUM(Orders.Total) 
FROM Orders INNER JOIN Customers ON Orders.CustomerId= 
Customer.Id Group By Customer.Id) WHERE Customer.Id =Orders.CustomerId 
什麼
+0

介紹解釋什麼是'Orders.Total'? –

+1

對於字段名稱我很抱歉,我沒有安裝Northwind,也不記得名字,但是我的意思是Order表中的總數。如果Total不存在,您需要爲每個訂單項目乘以價格x數量 –

相關問題