Recupérer les lignes ou les dates sont les plus récente - SQL/NoSQL - Programmation
Marsh Posté le 15-04-2009 à 10:25:56
Il faudrait une sous requête sur le max de la date.
Ce qui donnerait :
SELECT e1.id, e1.dateEvt |
N.B. Pour éviter les confusions, j'ai préfixé chaque champ avec un alias (e1, e2, ou e3) du nom de la table.
Marsh Posté le 15-04-2009 à 10:53:22
En fait, cette requete suffit :
SELECT id, MAX(dateEvt) FROM evt WHERE action = 'a' AND id NOT IN (SELECT id FROM evt WHERE action = b GROUP BY id;
Merci
Marsh Posté le 15-04-2009 à 09:49:46
Bonjour,
j'ai une table composé de 3 colonne : (exemple)
id, dateEvt, action
1 2008-01-02 a
2 2008-05-03 a
2 2009-01-04 b
3 2007-06-01 a
4 2005-12-10 a
4 2007-10-05 b
4 2008-10-14 b
5 2008-01-12 a
5 2005-01-01 a
A partir de cette requete, j'obtiens tout les id qui ont une action a et pas d'action b.
SELECT id, dateEvt FROM evt WHERE action = 'a' AND id NOT IN (SELECT id FROM evt WHERE action = b;
J'aimerais que lorsque le même id a plusieurs action identique (à savoir dans l'ex : 5), ne retrouver que la ligne correspondant à la dateEvt la plus récente.
Auriez vous une idée ?
Merci
---------------
Aloha