Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Berechnung zwischen mehreren SQL-Statements

  Alt 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
  Mit Zitat antworten Zitat