Selectionner une seule ligne

Messages postés
42
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
27 avril 2011
-
Messages postés
7
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
7 mai 2011
-
Bonjour,

J'ai une table du style suivant :

iddev idadh etat dtcreation
149 8 04/09/2008 14:16:09
149 11 C 09/10/2008 18:46:17
2292 62 C 09/10/2008 18:46:18
2292 63 09/09/2008 22:44:49
5183 134 14/09/2008 16:45:51
5183 135 14/09/2008 16:52:57
5183 137 14/09/2008 17:19:50
5183 143 C 09/10/2008 18:46:18
5700 235 17/09/2008 20:46:01
5700 363 C 09/10/2008 18:46:19
14088 436 24/09/2008 17:31:00
14088 467 25/09/2008 11:03:05
14088 469 25/09/2008 11:14:03
14088 956 12/10/2008 13:30:55
14088 2137 27/11/2008 09:00:00
14088 2138 27/11/2008 09:07:44
14088 2324 C 05/12/2008 20:11:15
71785 3021 31/12/2008 15:12:37
71785 3034 01/01/2009 10:52:24
181000 8048 C 19/01/2010 10:31:40

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.

2 réponses

Messages postés
42
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
27 avril 2011

Correction :
select iddev, max(etat) , max(dtcreation) from matable
group by iddev
Messages postés
7
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
7 mai 2011
1
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.

Cordialement