cs_Sylvain93
Messages postés42Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention27 avril 2011
-
27 avril 2011 à 10:10
cs_gogniol
Messages postés7Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 mai 2011
-
7 mai 2011 à 17:28
Je souhaiterais récupérer pour chaque IDDEV, uniquement l'IDADH dont l'ETAT est le plus élévé, et/ou la DTCREATION est la plus élévé.
En passant la requête suivante :
select iddev, max(etat) , max(dtcreation) from matable where email in
group by iddev
J'obtiens les lignes que je veux (sauf que je n'ai pas l'IDADH) :
iddev Column1 Column2
149 C 09/10/2008 18:46:17
2292 C 09/10/2008 18:46:18
5183 C 09/10/2008 18:46:18
5700 C 09/10/2008 18:46:19
14088 C 05/12/2008 20:11:15
71785 01/01/2009 10:52:24
181000 C 19/01/2010 10:31:40
Or je voudrais récupérer uniquement l'IDADH
Avez-vous une idée de la requête à passer ?
Merci d'avance.
A voir également:
Sql server concaténer plusieurs lignes dans un seul champ
cs_gogniol
Messages postés7Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 mai 20111 7 mai 2011 à 17:28
Bonjour,
C'est presque ça ...
La requête devient :
select idadh from matable A
inner join (select iddev, max(etat) Metat, max(dtcreation) Mdtcreation
from matable
group by iddev) B
on A.iddev=B.iddev and A.etat=B.Metat and A.dtcreation=B.Mdtcreation
Ceci en imaginant que le triplet iddev, etat, dtcreation est unique si non il risque d'y avoir des idadh en trop.