Bonjour,
Je me retrouve face à un problème, pour l'illustrer je vais prendre l'exemple d'un système de notation, pour disons, du patinage artistique. Chaque patineur participe à des runs qui sont notés par des jurés. Le run ayant une note "globale" correspondant à la somme des notes qui lui sont associées.
Considérons le schéma de table suivant :
Le but étant d'afficher par patineur, le run le mieux noté (maximum de la somme des notes) et le nombre de notes (pour vérifier que les 10 jurés on voté par ex), ainsi que l'id du meilleur run :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 CREATE TABLE patineurs ( id INTEGER(11) AUTO_INCREMENT, nom CHAR(255), PRIMARY KEY (id) ); CREATE TABLE runs ( id INTEGER(11) AUTO_INCREMENT, numero INTEGER(2), patineur_id INTEGER(11), PRIMARY KEY (id) ); CREATE TABLE notes ( id INTEGER(11) AUTO_INCREMENT, valeur DECIMAL(3,2), run_id INTEGER(11), jure_id INTEGER(11), PRIMARY KEY (id) ); CREATE INDEX run_id_idx ON notes(run_id); CREATE INDEX jure_id_idx ON notes(jure_id); CREATE INDEX patineur_id_idx ON runs(patineur_id);
patineur_id - note totale du meilleur run - nb de notes sur le run - run_id
J'arrive à afficher les notes par patineur mais je galère à n'afficher que les meilleures notes. J'ai fait des essais avec un GROUP BY patineur.id mais j'ai forcément un résultat imprévisible au niveau de la note du run - à ce sujet j'ai d'ailleurs lu cet excellent tutoriel qui illustre bien les pb relatifs au GROUP BY.
Merci d'avance pour votre coup de pouce !
Partager