Maison > Questions et réponses > le corps du texte
P粉2310799762023-08-19 07:58:16
Grâce à la fonction d'analyse LAG()
, nous pouvons essayer :
WITH cte AS ( SELECT e.name, e.full_name, LAG(a.attendance_date) OVER (PARTITION BY a.employee ORDER BY a.attendance_date) AS lag_attendance_date FROM tabAttendance a INNER JOIN tabEmployee e ON e.name = a.employee ) SELECT DISTINCT name, full_name FROM cte WHERE DATEDIFF(attendance_date, lag_attendance_date) > 11;
La stratégie de base ici est de générer le décalage (valeur consécutive précédente) de la date de présence en CTE. Nous ne signalons alors que les salariés avec un écart de 11 jours ou plus.