Bonjour,
J'ai un schéma de base:
Table Employees: Liste des employés
Table Customers: Liste des clients
Table Orders: Liste des commandes des clients, cette table référence bien entendu le client ayant effectué la commande, et l'employé ayant géré cette vente
Table Order detail: Contient les détails pour une commande (Liste de produits avec prix et quantité).
J'essaye maintenant de faire un select pour récupérer toutes les combinaisons client/employé et d'afficher la somme totale des commandes de ce client traité par cet employé. Exemple:
Imaginons que j'ai 2 employés: David et Albert, ainsi que deux clients: Dupont et capone:
-Employé- -Client- -Somme-
David Dupont 0.00€
David Capone 125.00€
Albert Dupont 3 500.00€
Albert Capone 0.00€
Maintenant j'ai réussis à afficher toutes les combinaisons des clients/Employés, j'arrive juste pas à y incorporer la somme de ventes car ca me rend une erreur liée au groupe by. Voiçi les détails:
Requête:
Output:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT emp.LastName Employee, cust.ContactName Customer, ( SELECT COALESCE(SUM(detail.UnitPrice * detail.Quantity),0) Sales FROM [dbo].[Order Details] detail, [dbo].[Orders] ord WHERE detail.OrderID = ord.OrderID AND ord.EmployeeID = emp.EmployeeID AND cust.CustomerID = cust.CustomerID ) FROM [dbo].Employees emp, [dbo].Customers cust GROUP BY Lastname, ContactName;
Quelqu'un aurait une idée de ce qui n'est pas cohérant dans ce query?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Msg 8120, Level 16, State 1, Line 3 Column 'dbo.Employees.EmployeeID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Msg 8120, Level 16, State 1, Line 3 Column 'dbo.Customers.CustomerID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Msg 8120, Level 16, State 1, Line 3 Column 'dbo.Customers.CustomerID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
D'avance merci pour votre aide
Partager