Bonjour,
j'ai un petit souci, j'ai besoin de faire un MAX() sur un SUM() dans une requête comportant des jointures.

Voici le schéma des tables utilisées pour la requête :

SERVEUR (NUM_SERVEUR, NOM_SERVEUR)
COMMANDE (NUM_COMMANDE, NUM_TABLE, NUM_SERVEUR, DATE, PRIX_TOTAL)
CONCERNER(NUM_CONSO, NUM_COMMANDE, QUANTITE)
CONSOMMATION (NUM_CONSO, NOM_CONSO, PRIX_CONSO)

Ma requête doit sélectionner le serveur qui a vendu le plus de tel ou tel consommation (NOM_CONSO).

En essayant ceci, j'ai tous les serveurs avec la quantité totale pour la conso '7up' :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT NOM_SERVEUR, SUM(QUANTITE) AS QTE FROM SERVEUR
INNER JOIN COMMANDE ON
SERVEUR.NUM_SERVEUR = COMMANDE.NUM_SERVEUR
INNER JOIN CONCERNER ON
COMMANDE.NUM_COMMANDE = CONCERNER.NUM_COMMANDE
INNER JOIN CONSOMMATION ON
CONCERNER.NUM_CONSO = CONSOMMATION.NUM_CONSO
WHERE CONSOMMATION.NOM_CONSO = '7up' GROUP BY NOM_SERVEUR;
Mais je n'arrive pas à sélectionner seulement celui qui en a vendu le plus.
J'ai essayé ceci :

dans la première ligne mais ça ne marche pas.

J'ai essayé ensuite ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT NOM_SERVEUR, MAX(QTE) FROM 
(SELECT NOM_SERVEUR, SUM(QUANTITE) AS QTE FROM SERVEUR
INNER JOIN COMMANDE ON
SERVEUR.NUM_SERVEUR = COMMANDE.NUM_SERVEUR
INNER JOIN CONCERNER ON
COMMANDE.NUM_COMMANDE = CONCERNER.NUM_COMMANDE
INNER JOIN CONSOMMATION ON
CONCERNER.NUM_CONSO = CONSOMMATION.NUM_CONSO
WHERE CONSOMMATION.NOM_CONSO = '7up' GROUP BY NOM_SERVEUR) GROUP BY NOM_SERVEUR;
Mais ça me donne toujours tous les serveurs avec leurs quantités totales.

Je voulais essayer ceci (identique au premier essai mais avec un having) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT NOM_SERVEUR, SUM(QUANTITE) AS QTE FROM SERVEUR
INNER JOIN COMMANDE ON
SERVEUR.NUM_SERVEUR = COMMANDE.NUM_SERVEUR
INNER JOIN CONCERNER ON
COMMANDE.NUM_COMMANDE = CONCERNER.NUM_COMMANDE
INNER JOIN CONSOMMATION ON
CONCERNER.NUM_CONSO = CONSOMMATION.NUM_CONSO
WHERE CONSOMMATION.NOM_CONSO = '7up' GROUP BY NOM_SERVEUR HAVING...;
Mais je ne sais pas quoi mettre comme fonction et comme opérateur pour le HAVING

Merci d'avance à celui qui m'apportera un peu d'aide !