Hallo Michael,
Michael Reichow schrieb:
Beipiel:
Mitarbeiter 140-10002
Tag1 von 07:30 bis 23:30 (ergibt 16 Std)
Tag2 von 08:30 bis 20:30 (ergibt 12 Std)
Tag3 von 08:30 bis 00:15 (ergibt 15,75 Std)
SQL-Abfrage: SELECT "ID", "Mitarb_Nr", ROUND( DateDiff( 'mi', "Beginn",
"Ende" ), 2 ) / 60 FROM "Std_Arbeitplatz"
führt zu folgendem Ergebnis:
Tag1 16 Std
Tag2 12 Std
Tag3 -8,25 Std
Die datentechnisch sauberste Lösung wird IMO sein, dass Du in den
Feldern "von" und "bis" nicht nur Uhrzeiten eingibst, sondern die
komplette Zeitpunktangabe mit Datum und Uhrzeit. Dann liefert Deine
obige Abfrage auch immer das richtige Ergebnis.
Es ist ja nicht wahr, dass der Mitarbeiter am Tag 3 bis 00:15
gearbeitet hat. Er hat von Tag 3 08:30 bis Tag 4 00:15 gearbeitet.
Ansonsten wäre Deine Lösung von zwei auf eine Abfrage reduzierbar,
wenn Du die erste Abfrage so modifizierst:
SELECT "ID", "Mitarb_Nr", ROUND( DateDiff( 'mi', "Beginn", "Ende" ),
2 ) / 60 + 12 * (1 - SIGN( DateDiff( 'mi', "Beginn", "Ende" ))) FROM
"Std_Arbeitsplatz"
Aber Achtung, wenn über mehr als eine Datumsgrenze hinweg gearbeitet
wird, ist Deine Lösung nicht mehr zulässig.
Gruß
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]