Salut à tous
J'ai un souci pour extraire des informations d'une table en fonction d'une date.
Schéma de la table :
Voici la requête actuelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE table_1 (champs_1 INTEGER, champs_2 INTEGER, champs_3 DATE, CONSTRAINT PK_Table_1 PRIMARY KEY (champs_1, champs_2)) INSERT INTO Table_1 (champs_1, champs_2, champs_3) VALUES (27, 123456, '12/04/2013') INSERT INTO Table_1 (champs_1, champs_2, champs_3) VALUES (27, 123456, '14/04/2013') INSERT INTO Table_1 (champs_1, champs_2, champs_3) VALUES (27, 123456, '19/05/2013')
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT champs_1, champs_2, champs_3 FROM Table_1 WHERE champs_1 IS NOT NULL AND champs_2 IS NOT NULL GROUP BY champs_1, champs_2, champs_3
Jusque là, tout est normal. Je peux avoir plusieurs dates (champs_3) pour un même couple de (champs_1,champs_2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 champs_1 champs_2 champs_3 -------- -------- -------- 27 123456 12/04/2013 27 123456 14/04/2013 27 123456 19/05/2013
Sauf que je souhaiterais faire la même liste mais en ayant qu'une seule ligne en prenant la dernière date.
Donc n'avoir que cette ligne :
Et là, je sais plus comment faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 champs_1 champs_2 champs_3 -------- -------- -------- 27 123456 19/05/2013
J'y arrive si je conditionne sur champs_1 et champs_2 par :
J'obtiens bien la ligne que je souhaite, mais je vois pas comment je peux faire pour l'appliquer sans conditions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT champs_1, champs_2, champs_3 FROM Table_1 WHERE champs_1 = 27 AND champs_2 = 123456 AND champs_3 = (SELECT MAX(champs_3) FROM Table_1 WHERE champs_1 = 27 AND champs_2 = 123456) GROUP BY champs_1, champs_2, champs_3
Merci pour votre lecture.
Partager