Bonjour,

Je ne parviens pas à mettre au point une requête qui doit sans doute être trés simple :

Je travaille sur 3 tables Athlétes, Compétitions, Résultats.
J'ai des structures basiques pour tests

Athletes : aCod, aNom
Compet. : cCod, cNom
Resulta. : rCod, rDat, rTim, aCod, cCod

Je veux extraire le vainqueur de chaque compétition, en indiquant le nom de la compétition, la date, le temps, le nom du vainqueur...

Je parviens à lister les noms des compétitions, date, et meilleur temps, mais ne trouve pas la solution pour coller à mon résultat le nom de chaque athléte vainqueur.

Code qui marche pour ajoindre le nom de la compétition aux résultats (3 compétitions, 3 lignes) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select cNom, cDat, min(rTim) from gbe_res
join gbe_com on gbe_com.cCod=gbe_res.cCod
group by cNom, cDat
Bien sûr j'ai fait quelques essais avant de créer ce post.
Je bute à chaque fois sur le fait que les données apparaissent en de multiples exemplaires.

J'ai essayé de joindre aNom provenant de la table athléte sous la forme du code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Select cNom, cDat, aNom, min(rTim) from gbe_res r
join gbe_com c on c.cCod=r.cCod
join gbe_ath a on a.aCod=r.aCod
group by cNom, cDat, aNom
mais là je récupére une dizaine de lignes au lieu des 3 attendues (3 compétitions)
....

Que faut il faire pour adjoindre le nom de l'athléte vainqueur à ce résultat ?
(je travaille avec local SQL D3 ou FireBird 1.5)