Bonsoir
Quand je lance cette requête "mysql" , tout va bien, je récupère bien une liste.
SELECT ( sum( re.note_numerique * e.coefficient ) / sum( e.coefficient ) )
FROM resultat_epreuve re
JOIN epreuve e ON ( e.id_epreuve = re.id_epreuve )
JOIN matiere m ON ( e.id_matiere = m.id_matiere )
JOIN classe c ON ( c.id_classe = e.id_classe )
WHERE c.id_classe =41
AND e.date_epreuve >= "2010-01-01"
AND e.date_epreuve <= "2015-01-01"
GROUP BY m.id_matiere, m.libelle_long_matiere
LIMIT 0 , 30
Je voudrai maintenant récupérer le max de cette liste.J'ai donc tout naturellement ajouté le mot clé MAX comme suit :
SELECT max( sum( re.note_numerique * e.coefficient ) / sum( e.coefficient ) )
FROM resultat_epreuve re
JOIN epreuve e ON ( e.id_epreuve = re.id_epreuve )
JOIN matiere m ON ( e.id_matiere = m.id_matiere )
JOIN classe c ON ( c.id_classe = e.id_classe )
WHERE c.id_classe =41
AND e.date_epreuve >= "2010-01-01"
AND e.date_epreuve <= "2015-01-01"
GROUP BY m.id_matiere, m.libelle_long_matiere
LIMIT 0 , 30
Et là je me prends une erreur vilaine : #1111 - Invalid use of group function
La doc dit qu'on ne peut pas faire de aggrégat d'aggrégat. Dés lors comment faire ?
Nb :suis pas l'expert en sql, vos suggestions seront les bienvenues.
DOminique
Message édité par domi_bu le 27-04-2011 à 08:47:42
---------------
Domi