Obtenez des enregistrements des employés qui ont pris 11 jours de congé consécutifs
P粉014218124
P粉014218124 2023-08-16 20:44:15
0
1
481
<p>J'ai un relevé de présence avec des champs pour le numéro d'employé, le statut et la date de présence. Je souhaite utiliser une requête SQL pour obtenir les enregistrements des employés qui ont pris un congé pendant 11 jours consécutifs. La condition est que si le statut de présence de l'employé est en congé, en absence ou en présence non marquée (une date qui n'existe pas dans le document de présence) pendant 11 jours consécutifs, y compris les week-ends. </p> <p>Les critères peuvent être un mélange de tous les statuts, c'est-à-dire congé, absence ou présence non marquée. </p>
P粉014218124
P粉014218124

répondre à tous(1)
P粉893457026

Cette requête recherche les salariés qui ont le statut « congés », « absents » ou « non marqués » dans leurs fiches de présence pendant 11 jours consécutifs. Il relie les données des employés aux données de présence, filtre le statut et la plage de dates spécifiques, regroupe les données et sélectionne uniquement les groupes avec un nombre d'enregistrements de 11.

SELECT DISTINCT a.employee_code
FROM employees e
JOIN attendance a ON e.employee_code = a.employee_code
WHERE a.attendance_date BETWEEN a.attendance_date AND DATE_ADD(a.attendance_date, INTERVAL 10 DAY)
  AND a.status IN ('请假', '缺席', '未标记')
GROUP BY a.employee_code, a.attendance_date
HAVING COUNT(*) = 11;

Si cette requête ne fonctionne pas pour vous, veuillez partager votre modèle. S'il y a des erreurs dans cette requête, veuillez le signaler.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal