Bonjour
voici mon souci : je possède une table historisant l'occupation de logements. Pour chaque logement on a donc un code correspondant au statut d'occupation et à une date donnée (date de début du statut).
Je souhaite rajouter une colonne qui serait la date de fin de statut et alimentée avec la date de début du statut suivant - 1 jour.
Illustration :
Table LGT_OCCUP
ID_LGT --- COD_OCCU ---- DATEDEB ------ DATEFIN
----------------------------------------------------
1 ________Vacant ______01/01/2007_____31/05/2007
2 ________Travaux _____01/06/2007_____30/06/2007
3 ________Occupé______01/07/2007
J'ai tenté un update avec un RANK mais sans parvenir à mes fins (erreur ORA-30483). Mon problème c'est la recherche du statut suivant.
Est ce que je peux reussir à alimenter ce champ avec cette méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 UPDATE LGT_OCCUP SET DATEFIN = (SELECT A.DATEDEB FROM (SELECT ID_LGT, DATEDEB, RANK() OVER (PARTITION BY ID_LGT ORDER BY DATEDEB) as RANG FROM LGT_OCCUP) A WHERE LGT_OCCUP.ID_LGT = A.ID_LGT and RANK() OVER (PARTITION BY ID_LGT ORDER BY DATEDEB) = rang +1 ) and LGT_OCCUP.DATEFIN is null ;
Merci de votre aide
Partager