Bonjour !
Pour illustrer mon problème, prenons une table repertoriant les notes de tous élève. Trois colones : l'identifiant de l'élève, la note, la date.
Je souhaite obtenir la note de chaque élève au dernier controle (le plus récent), sachant que le dernier contrôle de chaque élève ne correspond pas forcement à la même date.
Pour le moment je fonctionne de cette manière :
SELECT eleve, note, date
FROM classe c1
WHERE date=(SELECT MAX(c2.date)
FROM classe c2
WHERE c1.eleve = c2.eleve)
Visibilement dans la documentation française de mysql http://dev.mysql.com/doc/refman/5.0/...group-row.html d'autres méthodes sont préconisées (je suis sous mysql 5.0.22)
Les commentaires sur la version anglaise proposent encore d'autres méthodes :
http://dev.mysql.com/doc/refman/5.0/...group-row.html
Enfin je pensais à un dernière méthode : créer une quatrième colone de type enum(0,1) où la valeur 1 indique la derniere note entrée dans la base (les notes sont entrées chronologiquement). Ce qui simplifierait le SELECT mais alourdirait la table.
Je vous demande votre avis. Merci d'avance![]()
Partager