Zeitensumme

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Zeitensumme

Beitrag von der_Zerstreute »

Hallo Leute ,

in meiner Datenbank fasse ich meine Tätigkeitszeiten zusammen.
Nun habe ich eine Abfrage erstellt in der ich gern folgede informationen wiederfinden würde :
  • startzeit
  • fertigzeit
  • arbeit
  • benötigte Zeit (per datediff)
  • gefiltert nach aktuellem Monat per month vergleich
^-- soweit so einfach.

Jetzt möchte ich das ganze aber gern zusammenfassen also alle gleichen Arbeiten werden in der Zeit summiert und als eine Zeile angezeigt. wie stell ich das an?
Die Abfrage stellt die Summen-funktion aber wie schränke ich die auf die gleichen Arbeiten ein ?
mein SQL ist noch sehr schlecht und ich hoffe hier kann mir dabei einer helfen.
Achja die Datenbank ist im OOO Format.

gruß & Dank
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Zeitensumme

Beitrag von Barlee »

Hallo der_Zerstreute,

GROUP BY ist hier die Lösung.
Angenommen Du hast die Spalten "Arbeit" und "benötigte Zeit" ( als Diff zwischen Start und Ende), dann fasst Du das folgendermaßen zusammen:

Code: Alles auswählen

Select
Arbeit,
sum(benötigte_Zeit) as Zeit_Gesamt
from
[Deine Tabelle]
group by Arbeit
Beziehst Du mehr Spalten in die Abfrage ein, dann musst Du diese entsprechend in der "GROUP BY"-Klausel berücksichtigen.

Gruß Barlee
der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Re: Zeitensumme

Beitrag von der_Zerstreute »

Danke schonmal für deine Hilfe ..

hab das soweit in die Abfrage einbauen können. jetzt stolper ich über ein rechnerisches Problem. ich muß Pausen rausrechnen wenn die Arbeit über die Pause hinweg ging .. Will sagen .. Arbeit beginnt vor der Pause , Pause wird eingehalten, und danach gehts weiter .

nun sind die beiden Start und Stop felder Timestamp felder kann ich da mit casewhen einfach einen vergleich wie

Code: Alles auswählen

casewhen( "start" <12:15 and "fertig" >12:45 , "zeitdiff" - 0:25) 
einfügen ? oder geht das wegen timestamp nicht ?

Wär schön wenn Sie mir da noch nen Tip geben könnten.
Achja , in einigen Feldern tauchen umlaute wie ä auf stört sich sql daran ?
danke schonmal im vorraus
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Zeitensumme

Beitrag von Barlee »

Hallo Zerstreuter,

Du könntest die Stunden und MInuten aus den Timestamp-Feldern extrahieren und diese als Vergleichskriterium einsetzen.

Code: Alles auswählen

CASE WHEN  (concat(extract(HOUR from "Start"),concat(':',extract(MINUTE from "Start")))) < '12:15' and 
(concat(extract(HOUR from "Stop"),concat(':',extract(MINUTE from "Stop")))) > '12:45'  
THEN datediff('mi', "Start", "Stop")-25  
END as "Test"
Gruß Barlee
Antworten