Ne, so sollte das Resultat auf keinen Fall aussehen, denn SUM( value*5 ) AS 5er kann nur Werte ergeben, die durch 5 teilbar sind ... ;-)
Stimmt ;)
Das WHERE muß natürlich aufgebohrt werden, damit sowoh 3 als auch 4 erlaubt ist, also IN (3, 4).
Damit für die 2er nur die passenden Werte (statistic_id = 3) gezählt werden, sollte der value noch mit 1 (falls statistic_id = 3) bzw. 0 (fallst statistic_id nicht 3) multipliziert werden.
Die meisten DB-Systeme kennen eine IF-Funktion oder ähnliches. Du verrätst ja nicht, welches Du benutzt.Also in etwa so:
SUM( value*5*IF(statisitic_id=3;1;0) ) AS 2er
Genaue Syntax für IF verrät Dir das Handbuch Deines DB-Systems.
Für die 5er analog, mit statistic_id = 4, als zusätzliche Spalte beim select.
Ob Du das LIMIT (ok, Oracle benutzt Du nicht ...) auf 60 erhöhen willst, mußt Du selbst wissen.
Habs nun so versucht:
SELECT projectteam_id, SUM( value*2*IF(statistic_id=3,1,0) ) AS 2er, SUM( value*5*IF(statistic_id=4,1,0) ) AS 5er
FROM jos_joomleague_match_statistic
WHERE statistic_id =(3,4)
GROUP BY projectteam_id
Bekomme nun aber folgenden Fehler:#1241 - Operand should contain 1 column(s)
Was hat es damit auf sich?
Gruss Jan