Hallo Stefan

Am Dienstag, den 24.07.2007, 12:51 +0200 schrieb Stefan Weigel:
> 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.

Ich hatte bereits mit Datumfeldern getestet und die Formatierung der
Spalten auf "TT.MM.JJ HH:MM" gesetzt.
Das Ergebnis war ernüchternd, da die Zeitangaben bei Eingabe eines
neuen Datensatzes auf "TT.MM.JJ 00:00" zurückgesetzt wurden.

> 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.

Dieer Umstand ist mir bewusst, hat aber buchhaltungtechnische Gründe
(Überstundenberechnung).

> 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"

Hier erhalte ich folgende Fehlermeldung:
Warning!
Die Spalte 'SELECT "ID", "Mitarb_Nr", ROUND( DateDiff( 'mi', "Beginn",
"Ende" ), 2 ) / 60 + 12 * (1 - SIGN( DateDiff( 'mi', "Beginn",
"Ende" ))) FROM "Std_Arbeitsplatz" ist unbekannt


> Aber Achtung, wenn über mehr als eine Datumsgrenze hinweg gearbeitet 
> wird, ist Deine Lösung nicht mehr zulässig.
> 

Keine Angst! 24 Stunden durchmachen - Ja. Aber Arbeiten? ;-)

> Gruß
> 
> Stefan

Gruß
Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an