Hallo Community,
ich bin gerade mit einer Abfrage inkl Joins beschäftigt die mir den letzten nerv raubt.
Aufbau der Tabellen:
_____________________________________________________________________________
Personal:
Personal
Abteilung
seit
Bis
Dienstplan
Woplan:
Dienstplan
(Mo - So wird in der Where Bedingung mit Tagesmodelle verglichen)
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
Tagesmodelle:
Modelle (Hier gibt es 30 Attribute die in der Where Bedingung abgefragt werden)
Datum:
Datum (Hier stehen alle Tage im Format yyyy-mm-dd von 2006 bis 2020 drin
___________________________________________________________________________________
Was Soll raus kommen:
Ziel ist es einen Mitarbeiter mit jedem Tag im unternehmen zu Historisieren. Dafür benutze ich seit und bis und die Tabelle Datum.
Damit habe ich die Tabelle mit allen Mitarbeitern und deren Abteilung an Tag x.
Nun muss ich zu jedem Tag den richtigen Woplan hinzufügen.
Hier kommt es dazu das er Jede Person mit jedem woplan verknüpft.
Am Ende soll die Abfrage folgendes Ausgeben:
Mitarbeiter || Abteilung des Mitarbeiters || Datum || Tagesmodell
A TXL 01.01.2010 V
A TXL 02.01.2010 V
A TXL 03.01.2010 V
A TXL 04.01.2010 V
A TXL 05.01.2010 WE
B THX 01.01.2010 Früh
B THX 01.01.2010 Früh
B THX 01.01.2010 Früh
B TGC 01.01.2010 Früh
B TGC 01.01.2010 Früh
.
.
.
Hat wer ne Idee wie ich das richtig Joine?
Es gibt Tage wo kein Tagesmodell vorhanden ist ... diese sollten dann mit NULL Angezeigt werden.
ich bin gerade mit einer Abfrage inkl Joins beschäftigt die mir den letzten nerv raubt.
Aufbau der Tabellen:
_____________________________________________________________________________
Personal:
Personal
Abteilung
seit
Bis
Dienstplan
Woplan:
Dienstplan
(Mo - So wird in der Where Bedingung mit Tagesmodelle verglichen)
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
Tagesmodelle:
Modelle (Hier gibt es 30 Attribute die in der Where Bedingung abgefragt werden)
Datum:
Datum (Hier stehen alle Tage im Format yyyy-mm-dd von 2006 bis 2020 drin
___________________________________________________________________________________
Was Soll raus kommen:
Ziel ist es einen Mitarbeiter mit jedem Tag im unternehmen zu Historisieren. Dafür benutze ich seit und bis und die Tabelle Datum.
SQL:
SELECT p.personal, p.abteilung, d.datum
FROM Personal p join datum d on (d.datum between p.SEIT AND p.BIS)
Damit habe ich die Tabelle mit allen Mitarbeitern und deren Abteilung an Tag x.
Nun muss ich zu jedem Tag den richtigen Woplan hinzufügen.
SQL:
SELECT p.personal, p.abteilung, d.datum, Tagesmodell
FROM Personal2 p join datum d on (d.datum between p.SEIT AND p.BIS)join woplan w on p.DIENSTPLAN = w.DIENSTPLAN, TAGESMODELL t
WHERE w.MOTM = t.Tagesmodell
UNION ALL
SELECT p.personal, p.abteilung, d.datum, Tagesmodell
FROM Personal2 p join datum d on (d.datum between p.SEIT AND p.BIS)join woplan w on p.DIENSTPLAN = w.DIENSTPLAN, TAGESMODELL t
WHERE w.DITM = t.Tagesmodell
.
.
.
Für Alle Tage
Hier kommt es dazu das er Jede Person mit jedem woplan verknüpft.
Am Ende soll die Abfrage folgendes Ausgeben:
Mitarbeiter || Abteilung des Mitarbeiters || Datum || Tagesmodell
A TXL 01.01.2010 V
A TXL 02.01.2010 V
A TXL 03.01.2010 V
A TXL 04.01.2010 V
A TXL 05.01.2010 WE
B THX 01.01.2010 Früh
B THX 01.01.2010 Früh
B THX 01.01.2010 Früh
B TGC 01.01.2010 Früh
B TGC 01.01.2010 Früh
.
.
.
Hat wer ne Idee wie ich das richtig Joine?
Es gibt Tage wo kein Tagesmodell vorhanden ist ... diese sollten dann mit NULL Angezeigt werden.