UPDATE SQL récupérer enregistrement précédent
ragemind
-
MrSlave Messages postés 2657 Statut Membre -
MrSlave Messages postés 2657 Statut Membre -
Bonjour,
J'aurais besoin d'aide. En Access 2003, j'ai une table dont la structure est comme suit (j'ai mis des valeurs en exemple) :
ID--------Date ---------Valeur---------ValeurPrecedent
1-------01/01/2011-------- toto
2-------01/01/2011-------- titi
3-------01/01/2011--------lulu
1-------02/01/2011--------manu
2-------02/01/2011--------lili
3-------02/01/2011------- adele
1-------03/01/2011--------lolo
2-------03/01/2011-------nono
3-------03/01/2011--------lala
Avec valeurPrecedent à NULL
Comment faire (avec instruction SQL UPDATE si possible) pour mettre à jour le champ ValeurPrecedent à partir de la date 02/01/2011 pour que ce champ prenne la valeur du champ "Valeur" à la date précédente et pour le même ID ?
C'est à dire :
ID--------Date ---------Valeur---------ValeurPrecedent
1-------01/01/2011-------- toto
2-------01/01/2011-------- titi
3-------01/01/2011--------lulu
1-------02/01/2011--------manu-----------toto
2-------02/01/2011--------lili---------------titi
3-------02/01/2011------- adele------------lulu
1-------03/01/2011--------lolo--------------manu
2-------03/01/2011-------nono-------------lili
3-------03/01/2011--------lala--------------adele
Je vous remercie
J'aurais besoin d'aide. En Access 2003, j'ai une table dont la structure est comme suit (j'ai mis des valeurs en exemple) :
ID--------Date ---------Valeur---------ValeurPrecedent
1-------01/01/2011-------- toto
2-------01/01/2011-------- titi
3-------01/01/2011--------lulu
1-------02/01/2011--------manu
2-------02/01/2011--------lili
3-------02/01/2011------- adele
1-------03/01/2011--------lolo
2-------03/01/2011-------nono
3-------03/01/2011--------lala
Avec valeurPrecedent à NULL
Comment faire (avec instruction SQL UPDATE si possible) pour mettre à jour le champ ValeurPrecedent à partir de la date 02/01/2011 pour que ce champ prenne la valeur du champ "Valeur" à la date précédente et pour le même ID ?
C'est à dire :
ID--------Date ---------Valeur---------ValeurPrecedent
1-------01/01/2011-------- toto
2-------01/01/2011-------- titi
3-------01/01/2011--------lulu
1-------02/01/2011--------manu-----------toto
2-------02/01/2011--------lili---------------titi
3-------02/01/2011------- adele------------lulu
1-------03/01/2011--------lolo--------------manu
2-------03/01/2011-------nono-------------lili
3-------03/01/2011--------lala--------------adele
Je vous remercie
2 réponses
-
Sans tester, et un peu à l'arrache, j'aurai pensé à quelque chose comme :
update MaTABLE obj1 set obj1.VALEURPRECEDENT = obj2.VALEUR FROM MaTABLE obj1 INNER JOIN MaTABLE obj2 ON obj1.ID = obj2.ID WHERE obj2.DATDEBUT = (select max(DATDEBUT) FROM MaTABLE obj3 where obj2.ID = obj3.ID AND obj3.DATDEBUT < obj1.DATDEBUT); -
Salut,
juste avec du SQL, tu peux oublier, à mon avis...