Moin zusammen!
Code:
SELECT
mas.ID, 'Mustermann, Max' as Name,
bd.Datum,
be.Sollzeit,
b.Me1, b.Me2
FROM MA_Stammdaten mas
LEFT OUTER JOIN Buchungsdatei bd ON mas.ID = bd.ID_MA_Stammdaten
LEFT OUTER JOIN Buchungen b ON (bd.ID_MA_Stammdaten = b.ID_MA_Stammdaten AND bd.Datum = b.Datum)
LEFT OUTER JOIN B_Ergebnisse be ON bd.ID = be.ID_Buchungsdatei
WHERE mas.ID = 2 and (b.BuchungsArt = 'A' or b.BuchungsArt is null) and Month(bd.Datum) = 9 and Year(bd.Datum) = 2013
Dieser
SQL zeigt mit folgende Daten an
ID,Name,Datum,Sollzeit, Me1, Me2
2;Mustermann, Max;01.09.2013;480;08:00;17:00
2;Mustermann, Max;02.09.2013;480;08:00;12:00
2;Mustermann, Max;02.09.2013;480;12:00;15:00
...
An Tagen an denen der Mitarbeiter mehrmals gearbeitet hat, hier am 02.09 soll er nur im ersten Datensatz die Sollzeit anzeigen, im zweiten Datensatz 0.
Hintergrund: Ich bilde mir aus den Werten eine Summe am Ende des Monats und in diesem Beispiel hätte er 480 Minuten zu viel.
Hoffe mir kann jemand weiterhelfen, Danke.