UPDATE SQL récupérer enregistrement précédent

Fermé
ragemind - Modifié par ragemind le 15/08/2011 à 12:21
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 - 18 août 2011 à 08:59
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
A voir également:

2 réponses

MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
18 août 2011 à 08:59
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);
1
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
17 août 2011 à 09:37
Salut,

juste avec du SQL, tu peux oublier, à mon avis...
0