Hallo zusammen,
ich bin derzeit krankgeschrieben und habe sowas wie eine Zeitübersicht erstellt.
Eine kleine DB mit zwei Tabellen:
stati
id|statiname|farbe
taetigkeiten
id|time|mitarbeiter_id|stati_id
Im Browser wird dann einfach dargestellt:
Tag 1 vom Mai 2024
Ein div Anfahrt 120 px = 90 Minuten -> rot
div Kunde 400 px = 4 h -> grün
div Anfahrt 120 px = 90 Minuten -> rot
div Bürp 20 px = 15 Minuten -> orange
Tag 2 Mai 2024
div Kunde grün 2 h
....
Ich dachte erst ein simples sum oder group by löst das Ganze. Ist aber ein Satz mit x, da er mir dann entweder die gesamte Summe rauswirft oder aber die Unterschiede zB vom 01.05. und vom 2.05. mitberechnet. Bedeutet also, wenn dei Rückfahrt am 01.05.24 um 16:30 beginnt um 17 Uhr zu Ende ist, am nächsten Morgen startet er um 08:00 - 08:15 Anfahrt habe ich eine Summe von 15 h anstatt 45 Minuten
Rauskommen soll halt sowas wie:
Kunde: 135 h
Fahrzeit 6,5 h
Büro 4 h
sonstiges 3 h
Dazu müsste ich die Zeitdifferenzen Tageweise aufsummieren und per stati gruppieren. Aber das bekomme ich nicht hin. Hatte schon an ein Array gedachrt. Aber dann müsste ich etliche Arrays haben und die Flexibilität geht verloren.
Testweise habe ich bei den Dummydaten jeden Tag den Status 99 = Feierabend eingefügt. Komme damit aber auch nicht weiter. Window-Funktionen habe ich nicht zur Verfügung (LAG).
Any Idea?
mfG
tsunami
ich bin derzeit krankgeschrieben und habe sowas wie eine Zeitübersicht erstellt.
Eine kleine DB mit zwei Tabellen:
stati
id|statiname|farbe
taetigkeiten
id|time|mitarbeiter_id|stati_id
Im Browser wird dann einfach dargestellt:
Tag 1 vom Mai 2024
Ein div Anfahrt 120 px = 90 Minuten -> rot
div Kunde 400 px = 4 h -> grün
div Anfahrt 120 px = 90 Minuten -> rot
div Bürp 20 px = 15 Minuten -> orange
Tag 2 Mai 2024
div Kunde grün 2 h
....
Damit berechne ich den Unterschied zu nächsten Event. Nun möchte ich etwas Statistik machen. Also Gesamtzeit beim Kunden, Gesamtfahrzeit im Monat des Mitarbeiters, Durchschnittliche Fahrteiten aller Mitarbeiter usw.select t.*, stati.statiname, stati.farbe, timeSTAMPdiff(minute,(select time from taetigkeiten t1 where date_format(time,'%d')=1 and date_format(time,'%m')=5 AND t1.mitarbeiter_id = t.mitarbeiter_id and t1.id < t.id order by t1.id desc limit 1), time) diff from taetigkeiten t,stati where date_format(time,'%d')=1 and date_format(time,'%m')=5 and mitarbeiter_id=1 and stati_id=stati.id;
Ich dachte erst ein simples sum oder group by löst das Ganze. Ist aber ein Satz mit x, da er mir dann entweder die gesamte Summe rauswirft oder aber die Unterschiede zB vom 01.05. und vom 2.05. mitberechnet. Bedeutet also, wenn dei Rückfahrt am 01.05.24 um 16:30 beginnt um 17 Uhr zu Ende ist, am nächsten Morgen startet er um 08:00 - 08:15 Anfahrt habe ich eine Summe von 15 h anstatt 45 Minuten
Rauskommen soll halt sowas wie:
Kunde: 135 h
Fahrzeit 6,5 h
Büro 4 h
sonstiges 3 h
Dazu müsste ich die Zeitdifferenzen Tageweise aufsummieren und per stati gruppieren. Aber das bekomme ich nicht hin. Hatte schon an ein Array gedachrt. Aber dann müsste ich etliche Arrays haben und die Flexibilität geht verloren.
Testweise habe ich bei den Dummydaten jeden Tag den Status 99 = Feierabend eingefügt. Komme damit aber auch nicht weiter. Window-Funktionen habe ich nicht zur Verfügung (LAG).
Any Idea?
mfG
tsunami