2 votes

MySQL : Dans un select avec des fonctions d'agrégation, comment joindre deux colonnes qui ne sont pas dans les fonctions d'agrégation ?

J'utilise celui de Viescas Requêtes SQL pour les simples mortels et ses jeux de données.

Si j'exécute son code :

select customers.CustFirstName || " " || customers.CustLastName as "Name", 
customers.CustStreetAddress || "," || customers.CustZipCode || "," || customers.CustState as "Address",
count(engagements.EntertainerID) as "Number of Contracts",
sum(engagements.ContractPrice) as "Total Price",
max(engagements.ContractPrice) as "Max Price"
from customers
inner join engagements
on customers.CustomerID = engagements.CustomerID
group by customers.CustFirstName, customers.custlastname,
customers.CustStreetAddress,customers.CustState,customers.CustZipCode
order by customers.CustFirstName, customers.custlastname;

J'obtiens quelque chose comme le tableau suivant :

Nom Adresse Nombre de contrats Prix total Prix maximum

0   1   7   8255.00 2210.00
0   1   11  11800.00    2570.00
0   1   10  12320.00    2450.00
0   1   8   10795.00    2750.00
0   1   8   25585.00    14105.00
0   1   6   7560.00 2300.00

Cependant, la première ligne aurait dû afficher Carol Viescas dans la colonne Nom... Pourquoi obtient-on un zéro à la place ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X