Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
Delphi 7 Enterprise
|
Re: Berechnung zwischen mehreren SQL-Statements
18. Mär 2010, 16:19
Ja aber das mit dem "datum" ist doch auch nicht klar. Auf der einen Seite wird es festgelegt und zusätzlich von e geholt. Was soll das?
SQL-Code:
SELECT e.datum, e.intervall,
CASE WHEN COALESCE(tabelle3.wert, 0) > 0
THEN SUM(e.wert) + tabelle2.wert / tabelle3.wert
ELSE 0
END ergebnis_plus,
CASE WHEN COALESCE(tabelle3.wert, 0) > 0
THEN SUM(e.wert) - tabelle2.wert / tabelle3.wert
ELSE 0
END ergebnis_minus,
CASE WHEN COALESCE(tabelle3.wert, 0) > 0
THEN (SUM(e.wert) * tabelle2.wert) / tabelle3.wert
ELSE 0
END ergebnis_multi,
CASE WHEN COALESCE(tabelle2.wert, 0) > 0
AND COALESCE(tabelle3.wert, 0) > 0
THEN (SUM(e.wert) / tabelle2.wert) / tabelle3.wert
ELSE 0
END ergebnis_geteilt,
CASE WHEN COALESCE(tabelle2.wert, 0) > 0
AND COALESCE(tabelle3.wert, 0) > 0
THEN (SUM(e.wert) % tabelle2.wert) / tabelle3.wert
ELSE 0
END ergebnis_modulo
FROM element e
LEFT JOIN (SELECT datum, intervall, SUM(wert) wert
FROM element
WHERE typ_id = 18
AND datum = '2010-01-26'
AND pilot_id = 55
GROUP BY datum, intervall) tabelle2
ON e.intervall = tabelle2.intervall
LEFT JOIN (SELECT datum, intervall, SUM(wert) wert
FROM element
WHERE typ_id = 18
AND datum = '2010-01-26'
AND pilot_id = 55
GROUP BY datum, intervall) tabelle3
ON e.intervall = tabelle3.intervall
WHERE typ_id = 18
AND pilot_id = 55
AND e.datum = '2010-01-26'
GROUP BY e.datum, e.intervall, tabelle2.wert, tabelle3.wert
|
|
Zitat
|