norbert_pdm
Cadet 2nd Year
- Registriert
- März 2021
- Beiträge
- 25
Hallo, hallo in die Runde,
ich hab ein etwas merkwürdiges Phänomen... Ich habe in einer Datenbank 3 Tabellen, welche ich mit folgenden (Teil-) Abfrage abfrage:
Wenn ich diese Abfrage ausführe, erhalte ich das gewünschte Ergebnis:
Wenn ich die Abfrage jetzt so ergänze, dass ich den Zeitraum einengen will,
erhalte ich:
Was ich überhaupt nicht verstehe ist, warum die erste Zeile aus dem Result weg ist.
Mit Sicherheit hab ich da einen logischen Fehler, den ich nicht sehe.
Vielleicht hat ja jemand von euch eine Idee dazu.
Herzlichen Dank schon mal für Tipps,
Norbert
ich hab ein etwas merkwürdiges Phänomen... Ich habe in einer Datenbank 3 Tabellen, welche ich mit folgenden (Teil-) Abfrage abfrage:
SQL:
SELECT
ma.tbl_mitarbeiter_ID as ma_ID,
einzeln.tbl_doku_intern AS Intern
FROM
tbl_doku_einzeln einzeln
LEFT JOIN tbl_mitarbeiter_has_tbl_doku_einzeln dokueinzel ON dokueinzel.tbl_doku_einzeln_ID = einzeln.tbl_doku_einzeln_ID
LEFT JOIN tbl_mitarbeiter ma ON dokueinzel.tbl_mitarbeiter_ID = ma.tbl_mitarbeiter_ID
WHERE
IF (
einzeln.tbl_doku_intern = Null OR einzeln.tbl_doku_intern = '0',
einzeln.tbl_doku_date = '2021-02-19' AND ma.tbl_mitarbeiter_ID = '6',
einzeln.tbl_doku_date = '2021-02-19' AND ma.tbl_mitarbeiter_ID = '6'
)
Wenn ich diese Abfrage ausführe, erhalte ich das gewünschte Ergebnis:
Wenn ich die Abfrage jetzt so ergänze, dass ich den Zeitraum einengen will,
SQL:
SELECT
ma.tbl_mitarbeiter_ID as ma_ID,
einzeln.tbl_doku_date AS Datum,
CONCAT(DATE_FORMAT(einzeln.tbl_doku_starttime, '%H:%i'), ' - ', DATE_FORMAT(einzeln.tbl_doku_endtime, '%H:%i')) AS Zeit,
einzeln.tbl_doku_intern AS Intern
FROM
tbl_doku_einzeln einzeln
LEFT JOIN tbl_mitarbeiter_has_tbl_doku_einzeln dokueinzel ON dokueinzel.tbl_doku_einzeln_ID = einzeln.tbl_doku_einzeln_ID
LEFT JOIN tbl_mitarbeiter ma ON dokueinzel.tbl_mitarbeiter_ID = ma.tbl_mitarbeiter_ID
WHERE
IF (
einzeln.tbl_doku_intern = Null OR einzeln.tbl_doku_intern = '0',
einzeln.tbl_doku_date = '2021-02-19' AND ma.tbl_mitarbeiter_ID = '6',
einzeln.tbl_doku_date = '2021-02-19' AND ma.tbl_mitarbeiter_ID = '6'
AND (
TIME_TO_SEC(einzeln.tbl_doku_starttime) BETWEEN TIME_TO_SEC('10:00') AND TIME_TO_SEC('12:50') - 1
)
)
erhalte ich:
ma_ID | Datum | Zeit | Intern | |
---|---|---|---|---|
6 | 2021-02-19 | 12:45 - 14:15 | 1 |
Was ich überhaupt nicht verstehe ist, warum die erste Zeile aus dem Result weg ist.
Mit Sicherheit hab ich da einen logischen Fehler, den ich nicht sehe.
Vielleicht hat ja jemand von euch eine Idee dazu.
Herzlichen Dank schon mal für Tipps,
Norbert