Hi,
ich sitze jetzt schon ewig dran und bekomms einfach nicht hin
Ich habe eine Tabelle zur Zeiterfassung:
times(uid, start_time, end_time, task_id)
uid ist der identifizierende Username.
Jetzt brauche ich eine Übersicht, wieviel Sekunden ein User pro Monat an einem Task gearbeitet hat. Dies erreiche ich folgendermaßen:
Code:
SELECT DATE_FORMAT(start_time, '%Y-%c') AS time,
times.uid,
times.task_id,
SUM(1.0 * time_to_sec(end_time) - time_to_sec(start_time)) AS duration
FROM ts_times times
WHERE times.proj_id=34 AND
times.start_time>='2008-03-01' AND times.end_time<'2008-06-01'
GROUP BY time, uid, task_id
ORDER BY time, uid, task_id
Jetzt soll die Übersicht allerdings für einen späteren automatischen Export nach Excel erweitert werden. Und zwar sollen immer alle Tasks pro Monat jedem User zugewiesen werden, an denen er irgendwann mal in dem angegebenen Zeitraum gearbeitet hat (unten rot markiert). Außerdem soll jeder User in jedem Monat auftreten, falls er mind. einmal in irgendeinem Monat aufgetreten ist (blau markiert).
Beispielausgabe mit aktueller Abfrage:
time | uid | task_id | duration
2008-3 | user1 | 109 | 126900.0
2008-3 | user2 | 107 | 520380.0
2008-3 | user3 | 106 | 36000.0
2008-3 | user3 | 107 | 184800.0
2008-3 | user4 | 106 | 10800.0
2008-4 | user2 | 107 | 114300.0
2008-4 | user3 | 107 | 55500.0
2008-5 | user3 | 107 | 76800.0
2008-5 | user5 | 107 | 65700.0
Beispielausgabe mit gewünschter Abfrage:
time | uid | task_id | duration
2008-3 | user1 | 109 | 126900.0
2008-3 | user2 | 107 | 520380.0
2008-3 | user3 | 106 | 36000.0
2008-3 | user3 | 107 | 184800.0
2008-3 | user4 | 106 | 10800.0
2008-3 | user5 | 107 | 0.0
2008-4 | user1 | 109 | 0.0
2008-4 | user2 | 107 | 114300.0
2008-4 | user3 | 106 | 0.0
2008-4 | user3 | 107 | 55500.0
2008-4 | user4 | 106 | 0.0
2008-4 | user5 | 107 | 0.0
2008-5 | user1 | 109 | 0.0
2008-5 | user2 | 107 | 0.0
2008-5 | user3 | 106 | 0.0
2008-5 | user3 | 107 | 76800.0
2008-4 | user4 | 106 | 0.0
2008-5 | user5 | 107 | 65700.0
Irgendwer eine Idee? Wahrscheinlich braucht man eine zweite SELECT-Abfrage, die man ins FROM einbaut und dann mit JOIN verbindet.. Aber ich habe keine Lösung gefunden
Vielen Dank im Voraus für alle Tipps
