Hallo Zerstreuter,
das ist gar nicht so schwer, wenn Du Dir die Aufgabe logisch "zerpflückst".
Du benötigst genau zwei Ergebnistabellen, die Du durch Unterabfragen erhältst. Die erste liefert Dir -gruppiert nach Projekt- die Zeitsummen in Stunden , die zweite die Anzahl fertiger Projekte, ebenfalls nach Projekten gruppiert.
Die letzte benötigte Ergebnisspalte ist eine Berechnung aus Spalten der ersten beiden Unterabfragen.
Die beiden Ergebnistabellen verbindest Du nun mittels LEFT JOIN über das gemeinsame Attribut "Projekte".
Folgendes Beispiel geht von einer Ursprungstabelle "Tab_Projekte" aus, die die in Deinem Beispiel genannten Felder
"Projekt", "Start", "Stop", "Angefangen", "fertig" bereitstellt
Erste Unterabfrage (Ergebnistabelle Tab_A)
Code: Alles auswählen
SELECT
"Projekt",
SUM(CAST(DATEDIFF('mi',"Start","Stop") AS DOUBLE)/60) AS "Sum_Std"
FROM "Tab_Projekte"
WHERE "Angefangen"=1
GROUP BY "Projekt"
Zweite Unterabfrage (Ergebnistabelle Tab_B)
Code: Alles auswählen
SELECT
"Projekt",
COUNT("fertig") as "Anz_Fertig"
FROM "Tab_Projekte"
WHERE "fertig" = 1 AND "Angefangen"=1
GROUP BY "Projekt"
Nun der LEFT JOIN und die Berechnung von Zeit/Anz_fertiger_Reparaturen
Code: Alles auswählen
SELECT
"Tab_A"."Projekt",
"Tab_A"."Sum_Std",
"Tab_B"."Anz_Fertig",
"Tab_A"."Sum_Std"/"Tab_B"."Anz_Fertig" AS "Sum/Anz"
FROM
(
SELECT
"Projekt",
SUM(CAST(DATEDIFF('mi',"Start","Stop") AS DOUBLE)/60) AS "Sum_Std"
FROM "Tab_Projekte"
WHERE "Angefangen"=1
GROUP BY "Projekt"
) "Tab_A" LEFT JOIN
(
SELECT
"Projekt",
COUNT("fertig") as "Anz_Fertig"
FROM "Tab_Projekte"
WHERE "fertig" = 1 AND "Angefangen"=1
GROUP BY "Projekt"
) "Tab_B" ON "Tab_A"."Projekt" = "Tab_B"."Projekt"
mit dem Ergebnis, das Deiner Wunschvorstellung recht ähnlich ist:

- LFT_JOIN.png (5.45 KiB) 913 mal betrachtet
SQL direkt ausführen muss aktiviert sein!
Gruß Barlee