Bonjour à tous,
Je cherche à faire une requête à partir du type de données suivantes :
ID, Date, Valeur.
En fait je voudrais sélectionner pour chaque ID, la date Max avec sa valeur associée et la date précédente à la date max avec sa valeur associée et une différence des 2 valeurs.
C'est-à-dire j'ai ce genre de données ds ma table :
25, 15/01/2010, 6
25, 12/04/2011, 4
25, 13/05/2000, 4
26, 17/12/2000, 3
26, 18/11/2003, 7
Et j'aimerais avoir une requête qui fait ça :
ID, Max(Date), Val Max Date, DateprécDateMax, Val Dateprécdatemax, Diff
25, 12/04/2011, 4, 15/01/2010, 6, -2
26, 18/11/2003, 7, 17/12/2000, 3, 4
Est-ce possible de sélectionner la date précédente à la date max? Et cmt y associer les bonnes valeurs?
S'il n'existe pas de fonction ou de méthode pr sélectionner la date précédente à la date max, les différence entre la date max et la date préc sont tjs de 7 jours, j'ai alors fait cette requête qui "fonctionne" plus ou moins mais elle ne donnera parfois des doubles lignes de date...dûent à la fonction Dateadd imbriquée...
Quelqu'un aurait-il une méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT Table.ID, Table.Date, Table.Valeur, Table_1.Date, Table_1.Valeur, (Table.Valeur-Table_1.Valeur) AS diff FROM Table INNER JOIN Table AS Table_1 ON Table.ID = Table_1.ID WHERE (((Table.DATE) In (Select Max(Date) From Table Group by ID)) AND ((Table_1.DATE) In ( SElect Dateadd("d",-7,Max(Date)) From Table Group by ID))) GROUP BY Table.ID, Table.Date, Table.Valeur, Table_1.Date, Table_1.Valeur;
Partager