Erhalten Sie Aufzeichnungen über Mitarbeiter, die 11 aufeinanderfolgende Tage frei genommen haben
P粉014218124
P粉014218124 2023-08-16 20:44:15
0
1
504
<p>Ich habe eine Anwesenheitsliste mit Feldern für Mitarbeiternummer, Status und Anwesenheitsdatum. Ich möchte eine SQL-Abfrage verwenden, um die Datensätze von Mitarbeitern abzurufen, die an 11 aufeinanderfolgenden Tagen Urlaub genommen haben. Voraussetzung ist, dass der Anwesenheitsstatus des Mitarbeiters an 11 aufeinanderfolgenden Tagen, einschließlich Wochenenden, Urlaub, Abwesenheit oder nicht markierte Anwesenheit (ein Datumsdatensatz, der nicht im Anwesenheitsdokument vorhanden ist) lautet. </p> <p>Die Kriterien können eine Mischung aus allen Status sein, also Urlaub, Abwesenheit oder ungemerkte Anwesenheit. </p>
P粉014218124
P粉014218124

Antworte allen(1)
P粉893457026

这个查询找到在考勤记录中有连续11天“请假”、“缺席”或“未标记”状态的员工。它将员工数据与考勤数据连接起来,过滤特定的状态和日期范围,对数据进行分组,然后仅选择那些记录数为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;

如果这个查询对您不起作用,请分享您的模式。如果这个查询有任何错误,请指出。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage