Bonjour,
Je ne parviens pas à trouver la bonne syntaxe pour une requête devant me donner la valeur de la colonne A de la ligne dont la valeur B est la plus petite, le tout group by C.
Les 2 tables sont les suivantes :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
select a.idadr,a.titre,a.nomf,a.prenom from abadr a where idadr=1574;
1574;"MONSIEUR ET MADAME";"AMC";"Jean Marius"
La deuxieme table est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
select idadr,codsrc,datesrc from absrcadr s where idadr=1574;
idadr  codsrc      datesrc
1574;"038B22"; "200232    "
1574;"038B";    "200231    "

Le but de la requête est d'extraire pour chaque idadr, une seule ligne avec le CODSRC correspondant à la DATESRC la plus petite. Soit la ligne suivante ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
1574;"MONSIEUR ET MADAME";"AMC";"Jean Marius";1574;"038B";    "200231    "
J'ai essayé la requête suivante (et plein d'autres) mais elle me retourne toujours 2 lignes, comme si le having n'était pas utilisé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT a.idadr,a.titre,a.nomf,a.prenom,s.codsrc, datesrc
 FROM abadr a, absrcadr s
 WHERE s.idadr=a.idadr AND a.idadr=1574 
 GROUP BY 1,2,3,4,5,6
 HAVING datesrc=min(datesrc);
Je sais que j'ai pris de mauvaise habitude avec mysql, mais pour ce cas, je ne vois pas mon erreur. Je peux créer une table temporaire pour trouver le codesrc qui m'interesse mais je ne trouve pas cela très propre.

Si quelqu'un a une bonne idée....