|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
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... Code :
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
Bonjour Nitromard,
si on est sûr que les dates sont espacées de 7 jours, on peut essayer : Code sql :
attention à la table [Table] et au champ [Date] qui sont des mots réservés. |
||
|
10
|
|
|
#3 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bonjour f-leb,
Merci du conseil pour Table et Date (ce sont des noms fictifs pour simplifier les notations de mon problème ^^). Je vais tester cela immédiatement.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Voilà, le test est fait, ça marche impec!
Le problème que j'avais avec l'autre requête n'apparait plus. Bon par contre j'ai parfois des ID qui n'apparaissent qu'une seule fois dans la table d'origine. Du genre : 17, 12/12/2006, 4 Du coup la requête les affiches quand mm avec, bien sûr, rien en valeur précédente et du coup rien en Difference. Cmt faire pr ne pas les faire afficher? Et pour une date précédente qui serait n'importe quand, vous avez une idée? Un cas similaire déjà rencontré? (si non cela n'a pas d'importance, c'est, on va dire, plus de la culture générale ^^) Merci en tout cas pour votre aide ^^
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bon avec un simple Is not null ds une condition where à la fin, cela fonctionne très bien ^^.
En tout cas merci bcp.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
...ou alors en remplaçant le LEFT JOIN par INNER JOIN il me semble que ça marche aussi.
Pour des dates espacées quelconques, c’est un peu plus long : Code sql :
A tester… |
||
|
20
|
|
|
#7 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Bonjour,
Ca a l'air de fonctionner ^^! Merci beaucoup et bonne continuation à vous !
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com