problème de requête avec utilisation de min/group by
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:
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:
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:
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:
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....