Hallo liebes Community,
ich habe eine Frage zu einem Select-Problem.
ich habe eine Tabelle: Mitarbeiter (M_ID, und personalien), eine Tabelle: Kunden und eine Tabelle: Standort
Dazu giebt es die Relationstabelle: Bez_Kunden_Mitarbeiterin dem Mitarbeiter in relation von Kunden und dessen Standort gesetzt werden.
S. Bild - Relationale DB - Kurzübersicht
s. Bild - mit Beispieldaten
Problemstellung:
Ich möchte mir alle Mitarbeiter anzeigen lassen, die ausgeschieden sind. Sprich nur die Mitarbeiter, wo ein Austrittsdatum, in Tabelle: MAChronik gesetzt ist und falls der Mitarbeiter mehrere Rekords besitzt, muss dazu geprüft werden, das dazu auch kein Rekord mit Austritt NULL oder '000-00-00' definiert ist.
Mit folgendem SQL-Satemant werden mir dazu leider auch alle mit offenem Austritt angezeigt, wie kann man das realisierun, dass zu einer M_ID alle Rekorts geprüft werden (vielleich mit einer Loop) das der Mitarbeiter auch wirklich ausgeschieden ist?
MySQL:
Ich freu mich über etwas Hilfe bei diesem Thema und Danke es Euch schon im Voraus.
Liebe Grüße!
ich habe eine Frage zu einem Select-Problem.
ich habe eine Tabelle: Mitarbeiter (M_ID, und personalien), eine Tabelle: Kunden und eine Tabelle: Standort
Dazu giebt es die Relationstabelle: Bez_Kunden_Mitarbeiterin dem Mitarbeiter in relation von Kunden und dessen Standort gesetzt werden.
S. Bild - Relationale DB - Kurzübersicht
s. Bild - mit Beispieldaten
Problemstellung:
Ich möchte mir alle Mitarbeiter anzeigen lassen, die ausgeschieden sind. Sprich nur die Mitarbeiter, wo ein Austrittsdatum, in Tabelle: MAChronik gesetzt ist und falls der Mitarbeiter mehrere Rekords besitzt, muss dazu geprüft werden, das dazu auch kein Rekord mit Austritt NULL oder '000-00-00' definiert ist.
Mit folgendem SQL-Satemant werden mir dazu leider auch alle mit offenem Austritt angezeigt, wie kann man das realisierun, dass zu einer M_ID alle Rekorts geprüft werden (vielleich mit einer Loop) das der Mitarbeiter auch wirklich ausgeschieden ist?
MySQL:
SQL:
SELECT *
FROM Mitarbeiter m
LEFT JOIN Bez_Kunden_Mitarbeiter bkm ON m.M_ID = bkm.M_ID
LEFT JOIN MAChronik mac ON m.M_ID = mac.M_ID
WHERE bkm.STGruppen_ID = '1'
AND mac.Austritt = (SELECT max(mac2.Austritt)
FROM MAChronik mac2
WHERE mac2.M_ID = m.M_ID)
AND (mac.Austritt is not null OR mac.Austritt != "0000-00-00" OR mac.Austritt < "2019-01-28")
GROUP BY bkm.M_ID
ORDER BY m.Name ASC
Ich freu mich über etwas Hilfe bei diesem Thema und Danke es Euch schon im Voraus.
Liebe Grüße!
Zuletzt bearbeitet: