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






Répondre avec citation

)

Partager