Wie kann ich Benutzer mit zwei aufeinander folgenden Abwesenheiten nur zählen? Ich muss ein Diagramm erstellen, um Häufigkeitsabwesenheiten nach Mitarbeitern anzuzeigen.PHP MYSQLI Benutzer mit zwei aufeinander folgenden Daten zählen
Mein Tabellenname = Incidencias
id | name | dateA | description
1 | al |2017-08-01| absence
2 | al |2017-08-02| absence
3 | alex |2017-08-01| absence
4 | alex |2017-08-02| absence
5 | alex |2017-08-03| absence
6 | al2 |2017-08-01| absence
7 | al2 |2017-08-02| absence
Ich möchte das Ergebnis 2 sein, nur al und AL2 haben zwei aufeinanderfolgende Tage, wo description = Abwesenheit.
Ich benutze PHP, um die Abfrage auszuführen, habe ich diesen Code ich habe versucht, aber und ich testete es in sqlfiddle und funktioniert gut ,. aber nicht in meinem Host.Ich denke, das ist für PostgreSQL.
$query2 = mysqli_query($conn, "SELECT name,
sum(diff) as days,
(dateA) as work_start,
(dateA) as work_end
FROM (SELECT name,
dateA,
diff
FROM (select name,
dateA,
nvl(dateA- lag(dateA) over (partition by name order by dateA),1) as diff
from incidencias
where description = 'absence'
) t1
where diff = 1
) t2
group by name
having sum(diff) = 2");
$row_cnt = mysqli_num_rows($query2);
printf("Result set has %d rows.\n", $row_cnt);
Ich würde es wirklich schätzen.
Können Sie bitte einige Beispieldaten auf SQL-Format veröffentlichen? – sumit