viking: 2 sql Abfragen kombinieren

Beitrag lesen

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