MudGuard: 2 sql Abfragen kombinieren

Beitrag lesen

Hi,

SELECT projectteam_id, SUM( value*2 ) AS 2er

FROM jos_joomleague_match_statistic
WHERE statistic_id =3
GROUP BY projectteam_id
LIMIT 0 , 30


>   
> ~~~sql

SELECT projectteam_id, SUM( value*5 ) AS 5er  

> FROM jos_joomleague_match_statistic  
> WHERE statistic_id =4  
> GROUP BY projectteam_id  
> LIMIT 0 , 30

Kann jemand behilflich sein? Das Resultat sollte zum Beispiel so sein:

projectteam_id | 2er | 5er
1              |  50 | 12
2              |  18 | 28
3

Ne, so sollte das Resultat auf keinen Fall aussehen, denn SUM( value*5 ) AS 5er kann nur Werte ergeben, die durch 5 teilbar sind ... ;-)

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.

(übrigens: mir kommt das LIMIT ohne ORDER BY verdächtig vor ...)

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.