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 :
La deuxieme table est la suivante :
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"
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 ;
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 1574;"MONSIEUR ET MADAME";"AMC";"Jean Marius";1574;"038B"; "200231 "
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.
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);
Si quelqu'un a une bonne idée....
Partager