A voir également:
- [SQL] faire un distinct un peu plus évoluer ?
- 2 colis distinct shein - Forum Consommation & Internet
- Blob sql ✓ - Forum Webmastering
- Sql lister les tables ✓ - Forum Programmation
- Logiciel sql - Télécharger - Bases de données
- Faire évoluer machopeur sans échange ✓ - Forum Jeux vidéo
4 réponses
Merci pour ta réponse Aelith.
Je souhaiterais récupérer les derniers états (ETAT) de mes identifiants (ID) dans ma table MATABLE en ayant (pour les doublons) l'enregistrement ou le champ DATE est le plus vieux
Avec les valeurs suivantes par exemple :
123 01/01/2008 OK
456 04/01/2008 OK
123 02/01/2008 OK
456 01/01/2008 OK
123 03/01/2008 PB
Il faudrait que je récupère :
123 03/01/2008 PB
456 04/01/2008 OK
l' "order by" va s'appliquer au distinct, mais pas au enregistrement unique, non?
Je souhaiterais récupérer les derniers états (ETAT) de mes identifiants (ID) dans ma table MATABLE en ayant (pour les doublons) l'enregistrement ou le champ DATE est le plus vieux
Avec les valeurs suivantes par exemple :
123 01/01/2008 OK
456 04/01/2008 OK
123 02/01/2008 OK
456 01/01/2008 OK
123 03/01/2008 PB
Il faudrait que je récupère :
123 03/01/2008 PB
456 04/01/2008 OK
l' "order by" va s'appliquer au distinct, mais pas au enregistrement unique, non?
La requete que tu proposes ne retourne pas le résultat attendu (je l'avais aussi testée).
ça retourne :
456 OK
123 PB
123 OK
au lieu de :
456 OK
123 PB
ça retourne :
456 OK
123 PB
123 OK
au lieu de :
456 OK
123 PB
Après plusieurs essais, je pense avoir finalement trouvé ce que tu cherchais:
select ID, ETAT, DATE from MATABLE where DATE in (select max(DATE) from MATABLE group by ID )
(j'ignore cependant la réaction si deux enregistrements correspondent à la date la plus récente pour le même ID, je n'ai plus le temps de tester...)
select ID, ETAT, DATE from MATABLE where DATE in (select max(DATE) from MATABLE group by ID )
(j'ignore cependant la réaction si deux enregistrements correspondent à la date la plus récente pour le même ID, je n'ai plus le temps de tester...)
je viens de lancer la requete, j'ai le retour suivant :
456 04/01/2008 OK
456 04/01/2008 OK
123 03/01/2008 PB
Donc, j'ai ajouter un distinct, et là j'ai bein :
456 04/01/2008 OK
123 03/01/2008 PB
Avec le requete :
select distinct(ID), ETAT, DATE from MATABLE where DATE in (select max(DATE) from MATABLE group by ID )
Donc apparement ça me retourne un truc juste, je vais maintenant voir si avec de grosses tables, ça ne rame pas trop.
Merci pour ton aide Aelith
456 04/01/2008 OK
456 04/01/2008 OK
123 03/01/2008 PB
Donc, j'ai ajouter un distinct, et là j'ai bein :
456 04/01/2008 OK
123 03/01/2008 PB
Avec le requete :
select distinct(ID), ETAT, DATE from MATABLE where DATE in (select max(DATE) from MATABLE group by ID )
Donc apparement ça me retourne un truc juste, je vais maintenant voir si avec de grosses tables, ça ne rame pas trop.
Merci pour ton aide Aelith