Bonjour, j’ai un devoir SQL à faire et je bloque sur une question, ci-dessous le MLD et quelques explications.
MLD:
Croquette (NumC, NomC, Prix, Soin, NumF#)
Animal (NumA, NomA, DateNaiss, NbrRepas)
Manger (NumA#, NumC#, PourC)
Fabriquant (NumF, NomF, Adr, Code, Ville)
Légende: clé primaire, clé étrangère#
Deux explications:
-
La table Croquette contient des enregistrements décrivant les croquettes utilisées. Prix indique le prix au kilo, soin est un booléen indiquant si les croquettes soignent une pathologie ou non.
-
PourC est le pourcentage de la croquette NumC dans l’alimentation de l’animal NumA. Ce champ est utile si l’animal mange un mélange de plusieurs croquettes. PourC donne la répartition de ces dernières.
Alors voilà, la question est: Donnez les noms des animaux mangeant le plus de croquette différentes.
J’ai reussi à avoir le nom de tout les animaux avec le nombre de croquette différente qu’ils mangent en fesant ca:
[cpp]SELECT NomA, count(*) AS [Nb]
FROM Croquette C, Manger M, Animal A
WHERE C.NumC=M.NumC and A.NumA=M.NumA
GROUP BY NomA
ORDER BY 2 desc;[/cpp]
Maintenant, je trouve aucun moyen d’avoir seulement les animaux qui en mangent le plus de différente. En fait il faudrait quelque chose comme max(count()), ou HAVING max(count()), mais rien ne marche sur Access.
Merci d’avance.