Erhalten Sie Mitarbeiter, die sich an 11 aufeinanderfolgenden Tagen nicht angemeldet haben
<p>Ich versuche, Mitarbeiter aus der Datenbank zu ermitteln, die an 11 aufeinanderfolgenden Tagen keine Anwesenheitsliste angezeigt haben.
Dafür habe ich eine Mitarbeitertabelle und eine Anwesenheitstabelle, aber das Problem dabei ist, dass es keinen Datensatz in der Anwesenheitstabelle gibt. Wie kann ich also </p>
<p>Ich habe viele Abfragen ausprobiert, einige davon lauten wie folgt: </p>
<pre class="brush:php;toolbar:false;">SELECT e.name, e.full_name
VON tabMitarbeiter e
LINKS BEITRETEN (
WÄHLEN
Angestellter, Angestellter
MIN(Anwesenheitsdatum) AS erstes_Anwesenheitsdatum
VON tabAnwesenheit
GROUP BY-Mitarbeiter
) ar ON e.name = ar.employee
WO ar.first_attendance_date NULL IST ODER
EXISTIERT NICHT (
WÄHLEN 1
VON tabAnwesenheit
WO Mitarbeiter = e.name
AND attendance_date >= ar.first_attendance_date
AND attendance_date < DATE_ADD(ar.first_attendance_date, INTERVAL 11 DAY)
)</pre>
<p>Eine weitere Abfrage:</p>
<pre class="brush:php;toolbar:false;">SELECT e.name, COUNT(a.`attendance_date`), COUNT(e.`name`) from tabEmployee e
LEFT JOIN tabAttendance a ON e.name = a.`employee`
WO a.`employee` NULL IST
GROUP BY e.`name`</pre>
<p><br /></p>