Abfragen III - Zeitdauer bei mehreren Buchungen (Kommen - Gehen)

21/02/2009 - 12:40 von Joerg M. | Report spam
Hallo NG,

anderes Szenario.
Ich habe eine Tabelle

tblA: Datum, Mitarbeiternummer, Buchungsart, Buchungszeit

Also ganz klassische Zeiterfassung, Buchungsart kann Kommen oder Gehen sein.

Ziel ist, herauszufinden, wie lange die Arbeistzeit des Mitarbeiters am
jeweiligen Tag war/ist.

Problem 1:
Also muss ich für jeden Mitarbeitre an jedem Tag die Buchungszeit der
Buchungsart Kommen von der Buchungszeit der Buchungsart Gehen abziehen.
Selbst da habe ich mein Problem, überhaupt einen Ansatz zu finden, weil die
Daten ja nicht in einre Zeile (einem Datensatz) stehen. Jedes Buchen macht
einen neuen Datensatz und aktualisiert nicht den letzten Datensatz des
Mitarbeiters :-(

Als Ausgabe soll kommen:

Datum, Mitarbeiternummer, Kommenzeit, Gehenzeit, Arbeitszeit

Problem 2:
Jetzt wird es spannend, wir haben natürlich auch absolute Pseudo-Profis, die
gleich mehrmals am Tag buchen (Fehlbuchungen). Da finde ich dann am Tag bspw.
5 oder 6 Buchungen für einen Mitarbeiter. Da soll sich die Abfrage so
verhalten, dass es für den Tag nur die erste Kommenbuchung und die letzte
Gehenbuchung verwendet. Die Zwischenbuchungen sollen praktisch übergangen
werden ...

Auswerteergebnis soll dann auch wieder sein:

Datum, Mitarbeiternummer, Kommenzeit, Gehenzeit, Arbeitszeit


Danke, Gruß Jörg
 

Lesen sie die antworten

#1 Stefan Hoffmann
21/02/2009 - 15:01 | Warnen spam
hallo Jörg,

Erstmal: Falsche Reihenfolge. Und die Beschreibungen sind auch nicht
unabhàngig voneinander.

Joerg M. schrieb:
Problem 2:
Jetzt wird es spannend, wir haben natürlich auch absolute Pseudo-Profis, die
gleich mehrmals am Tag buchen (Fehlbuchungen). Da finde ich dann am Tag bspw.
5 oder 6 Buchungen für einen Mitarbeiter. Da soll sich die Abfrage so
verhalten, dass es für den Tag nur die erste Kommenbuchung und die letzte
Gehenbuchung verwendet. Die Zwischenbuchungen sollen praktisch übergangen
werden ...


SELECT
Datum, Mitarbeiternummer, Min(Buchungszeit) AS Kommenzeit
FROM
Tabelle
WHERE
Buchungsart = <kommen>
GROUP BY
Datum, Mitarbeiternummer

Analog für die Ausbuchung, allerdings mit Max().

Problem 1:
Also muss ich für jeden Mitarbeitre an jedem Tag die Buchungszeit der
Buchungsart Kommen von der Buchungszeit der Buchungsart Gehen abziehen.
Selbst da habe ich mein Problem, überhaupt einen Ansatz zu finden, weil die
Daten ja nicht in einre Zeile (einem Datensatz) stehen. Jedes Buchen macht
einen neuen Datensatz und aktualisiert nicht den letzten Datensatz des
Mitarbeiters :-(


Die beiden Abfragen von oben mittels Datum und Miterbeiternummer
verknüpfen...



mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen