„SQL-Abfrage nach gültigen Datensätzen innerhalb eines bestimmten Datumsbereichs“
<p>Ich arbeite an der Anwesenheitskontrolle. Check-in und Check-out sind zwei verschiedene Datensätze in der Tabelle</strong></p>
<p>Es ist möglich, dass sich jemand einige Tage lang nicht abgemeldet hat, dies sollte jedoch als Anwesenheit an diesem Tag gezählt werden</p>
<pre class="brush:php;toolbar:false;">Personal-ID – Check-in-Zeit – Check-out-Zeit
3842 17.12.2022 09:030 – Nie ausgecheckt (jeder Tag nach dem 17.12.2022 sollte gezählt werden)
3843 17.12.2022 08:00 – 17.12.2022 09:30 (Das Folgende ist derselbe Tag)
3843 17.12.2022 11:00 – 17.12.2022 13:30 (Das Obige ist derselbe Tag)
3841 17.12.2022 08:00 – 17.12.2022 17:45 (Einfach am selben Tag)
3844 17.12.2022 22:00 – 18.12.2022 06:40 (Überschreitung von Mitternacht – 17.12. und 18.12. sollten gezählt werden)
Mein gewünschtes Ergebnis ist
15.12. 1 Person
17.12. 4 Personen
18.12. 2 Personen</pre>
<p>Ich möchte wissen, wie viele Personen am X-Tag anwesend sind</p>
<p>Ich bin etwas verwirrt, wie ich mit zwei verschiedenen Datensätzen (Check-in und Check-out) oder nur einem verfügbaren Datensatz (Check-in) umgehen soll.</p>
<pre class="brush:php;toolbar:false;">CREATE TABLE `my_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`person_id` int(11) DEFAULT NULL,
`action` varchar(24) DEFAULT NULL,
„when_created“-Zeitstempel NULL DEFAULT CURRENT_TIMESTAMP,
PRIMÄRSCHLÜSSEL („id“)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;</pre>
<p>Einige Einfügeanweisungen</p>
<pre class="brush:php;toolbar:false;">INSERT INTO `my_history` ( `person_id`, `action`, `when_created`)
WERTE
(3842, 'checked_in', '2022-12-15 08:00:00'),
(3842, 'checked_out', '2022-12-15 09:30:00'),
(3842, 'checked_in', '2022-12-17 09:30:00'),
(3843, 'checked_in', '2022-12-17 08:00:00'),
(3843, 'checked_out', '2022-12-17 09:30:00'),
(3843, 'checked_in', '2022-12-17 11:00:00'),
(3843, 'checked_out', '2022-12-17 13:30:00'),
(3841, 'checked_in', '2022-12-17 08:00:00'),
(3841, 'checked_out', '2022-12-17 17:42:00'),
(3844, 'checked_in', '2022-12-17 22:00:00'),
(3844, 'checked_out', '2022-12-18 06:40:00');
TABELLE ERSTELLEN Person (
idINT(11)
)
EINFÜGEN IN
Person
WERTE
(3841),
(3842),
(3843),
(3844)</pre></p>