Bonjour tout le monde,
Je sollicite votre aide pour résoudre un problème sur ma requête SQL.
Voici ma table :
FACT_ABS (ID_CALENDAR,MATRICULE,ABSENCE_TYPE,ABSENCE_DURATION)
En effet, j'aimerai recopier la date de début d'absence dans un champ supplémentaire pour toute la durée de celle-ci.
Voici la requête que j'ai actuellement :
Le CASE me permet de déterminer quand la nouvelle absence commence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ID_CALENDAR, MATRICULE, CASE WHEN DATEDIFF(DAY,CONVERT(char(8),CONVERT(int,(LAG(ID_CALENDAR) OVER (PARTITION BY MATRICULE ORDER BY ID_CALENDAR))),112),CONVERT(char(8),CONVERT(int,ID_CALENDAR),112)) !=1 OR DATEDIFF(DAY,CONVERT(char(8),CONVERT(int,(LAG(ID_CALENDAR) OVER (PARTITION BY MATRICULE ORDER BY a.ID_CALENDAR))),112),CONVERT(char(8),CONVERT(int,ID_CALENDAR),112)) is null THEN 1 ELSE 0 END AS ABSENCE FROM FACT_ABS
Je suis à votre disposition pour d'autres précisions.
Ci-joint un exemple du résultat que je souhaiterai.
Merci de votre aide
Partager