Nettoarbeitsstunden/-tage

Prengepower

Mitglied
Hallo!

Gibt es eine Möglichkeit mir in SQL die Nettoarbeitsstunden bzw. -tage ausgeben zu lassen?
Habe es beides in Excel relativ einfach hinbekommen, aber würde gerne direkt die Ausgabe in per SQL haben :)
 
Moin,

hä? Was genau meinst Du denn :confused::confused:

Die beiden genannten Spalten aus einer Tabelle zu selektieren, sollte es doch wohl mit SQL kein Thema für Dich sein, oder :confused:

Was genau hast Du in Excel gemacht :confused:

Erkläre mal sinnig, was Du machen willst ..... ;-]

Gruß
Klaus
 
na ich hab ein startdatum mit zeit und ein enddatum mit zeit...
arbeitszeit ist von 6 - 19 uhr.. und am wochenende wird nicht gearbeitet.

Sprich:
Wenn ich ein Startdatum Freitag, 01.01.2010 9:00 Uhr hab und ein Enddatum Montag, 04.01.2010 15:00 Uhr hab, dann würde ich auf eine Arbeitszeit von 19 Stunden kommen..
Als Arbeitstage hätte ich 2 Stück weil ja Samstag und Sonntag nicht berücksichtigt werden...

Diese Berechnung habe ich über Excel durchgeführt. Da ich jetzt aber nen paar komplexere Auswertungen damit aus der Datenbank direkt ziehen möchte, ist das ein wenig aufwendig, alle "Rohdaten" zu ziehen, umzuwandeln und neu berechnen zu lassen...
 
schön ... und wie liegen die Daten in der DB vor (Struktur etc.) :confused:

sorry, aber meine Glaskugel ist gerade zur Reparatur ....

Gruß
Klaus
 
arbeitszeit ist von 6 - 19 uhr.. und am wochenende wird nicht gearbeitet

Startdatum Freitag, 01.01.2010 9:00 Uhr hab und ein Enddatum Montag, 04.01.2010 15:00 Uhr

Du arbeitest also nur innerhalb der Kernzeit. Nicht aber von Montag bis Freitag jeweils von 6 bis 19 Uhr (wäre ja sonst auch ganz schön lang). Also musst du doch für jeden Tag an dem du arbeitest einen separaten Eintrag in der Datenbank haben bei dem die Anfangs- und die Endzeit angegeben ist.

Dann musst du doch bei der Abfrage nur das Startdatum und das Enddatum angeben und dann die gefundenen Einträge addieren, so in der Art:

SQL:
SELECT (endzeit - startzeit) AS stunden FROM tabelle WHERE startdatum >= datum_anfang AND enddatum <= datum_ende

Gruß Thomas

@Klaus: Schmeiß doch mal deine sch... Glaskugel weg und hol dir ne neue. Immer wenn man von dir Hilfe braucht ist die kaputt ;)
 
ne ne wenn es meinetwegen am dienstag um 9:11 losgeht und am montag um 10:00 endet dann müsste der folgendes rechnen:

dienstag anteilige stunden von 9:11 - 19:00
mittwoch - freitag jeweils stunden von 6:00 - 19:00
montag anteilige stunden von 6:00 - 10:00

Sozusagen ist in der datenbank immer das start und das entdatum von dem kompletten zeitraum angegeben und ich will insgesamt die stunden wissen die in diesem zeitraum gearbeitet wurden ;)
 
Moin,

ne ne wenn es meinetwegen am dienstag um 9:11 losgeht und am montag um 10:00 endet dann müsste der folgendes rechnen:
dienstag anteilige stunden von 9:11 - 19:00
mittwoch - freitag jeweils stunden von 6:00 - 19:00
montag anteilige stunden von 6:00 - 10:00
Sozusagen ist in der datenbank immer das start und das entdatum von dem kompletten zeitraum angegeben und ich will insgesamt die stunden wissen die in diesem zeitraum gearbeitet wurden ;)

hmm, irgendwie scheint mir Euer Datenmodell nicht sehr durchdacht zu sein ... ;-]

Wenn ihr einen beliebigen Zeitraum nur durch Anfang- und Endezeitpunkt speichert, werdet Ihr die reinen runtergerechneten Arbeitszeiten durch reines SQL nicht herausbekommen, da die DB nicht wissen kann, ob ein WE, ein Feier- oder auch Urlaubstag dazwischen liegt!

Sinnvoll wäre es jeden einzelnen Tag mit Start und Ende zu speichern ... dann hast Du eine Chance !

Gruß
Klaus
 
ja na es geht mir ja nicht direkt um die arbeitsstunden sondern um die bearbeitungsstunden einer aufgabe quasi... wieviel zeit wurde von der regulären arbeitszeit dafür verwendet.. da ist halt wochenende nicht mit drin. feiertage könnte man als notwndiges übel vernachlässigen ;)
 
Moin,

ich verstehe nach wie vor nicht, wie Deine Daten in der DB organisiert sind :confused:

Möglichkeit 1
Code:
Tabelle_1
---------
Datum  StartZeit  Endzeit
1.6.10    09:00      17:00       = 8h
2.6.10    08:00      17:30       = 9,5h
5.6.10    08:45      16:30       = 7,75h (Summe 25,25h)

oder doch eher
Code:
Tabelle_2
---------
StartZeitpunkt  EndZeitpunkt
1.6.10 09:00    5.6.10 16:30   (Summe 127,5h)

Im ersten Fall (den ich für sinnvoll hielte) kannst Du doch einfach so wie von tombe beschrieben, die Werte für jeden einzelnen Tag ermitteln .....

Im zweiten Fall (den ich befürchte, wenn ich Dich richtig verstanden habe) hast Du halt nur den gesamten Zeitraum ....

Gruß
Klaus
 

Neue Beiträge

Zurück