2017-05-20 2 views
0

J'ai ajouté une colonne TotalOrders à la table Customers.Total commandes Northwind SQL par client

ALTER TABLE customers ADD TotalOrders INT NULL 

J'essaie de trouver le nombre total de commandes par client et ajouter cette valeur à cette colonne, mais je ne peux pas comprendre ce que dois-je résumer exactement

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

Vous ne souhaitez peut-être pas ajouter de colonne de commandes totales. Au contraire, cette colonne peut être calculée au moment où vous interrogez la table. –

+0

J'ai peur que cela ait été donné comme une tâche, et il a déclaré spécifiquement pour créer la colonne, puis ajouter des valeurs –

Répondre

2

Je pense que vous devriez utiliser une mise à jour ici. Vous pouvez agréger le nombre total de commandes par client dans la table orders, puis mettre à jour le tableau customers avec ces informations.

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

Mind expliquant ce qu'est 'Orders.Total'? –

+1

Je suis désolé pour les noms de champs, je n'ai pas installé northwind et je ne me souviens pas des noms, mais je veux dire le total général dans la table Order. Si Total n'existe pas, vous devez multiplier le prix par quantité pour chaque article de commande. –