Hallo zusammen,
leider viel mir kein besserer Titel ein.
Ich habe eine MySQL-Anweisung welche je nach Kriterium eine Summe bildet, z. B:
SELECT vorname,
ROUND(SUM(CASE
WHEN (spalte\_x = 1) THEN (spalte\_wert \* 1 / 3)
ELSE (0)
END),2) AS w1,
ROUND(SUM(CASE
WHEN (spalte\_x = 2) THEN (spalte\_wert \*2 / 3)
ELSE (0)
END),2) AS w2,
...
Das Ergbnis sieht dann z. B. so aus:
vorname | w1 | w2
Peter | 0.33 | 0.66
Hans | 0.66 | 0.66
Nun möchte ich eine dritte Spalte mit dem Ergebnis w1 + w2 haben, das ganze natürlich mit möglichst wenig Code.
Habe schon folgendes Versucht:
SELECT ...
SUM (w1 + w2) AS w3
...
leider funktioniert dies nicht,
da die Spalten w1 und w2 nicht existieren.
Könnte das ganze vermutlich mit folgendem Code lösen:
ROUND(SUM(CASE
WHEN (spalte\_x = 2) THEN (spalte\_wert \*2 / 3)
ELSE (WHEN (spalte\_x = 1) THEN (spalte\_wert \*1 / 3)
ELSE(0))
END),2) AS w3,
...
Für eine kleine Aufgabe ist das sicherlich tragbar, aber wenn dann noch einige Spalten hinzukommen wird’s doch unübersichtlich.
Kennt jemand ne bessere Alternative?
Danke und Gruß
Marcel