2017-10-11 3 views
-1

i mit der folgenden Abfrage die Hilfe benötigen, sollte es eine Summe aller Tore in jedem Spiel gemacht produzieren gespielt:SQL Summe eine Summe oder kombinieren

SELECT SUM(stand1) 
    FROM wedstrijdmodule_wedstrijden 
    WHERE team1 = 25 
UNION 
SELECT SUM(stand2) 
    FROM wedstrijdmodule_wedstrijden 
    WHERE team2 = 25; 

es ergibt sich:

SUM(stand1) 
68 
77 

Ich brauche:

Es ist eine Weile her, seit ich SQL und suchte nach etwa einer Stunde, ohne Ergebnisse. Es muss nicht unbedingt gut aussehen, da es mit PHP extrahiert wird.

+0

Bitte klären Sie Ihr spezielles Problem oder fügen Sie weitere Details genau zu markieren, was Sie brauchen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Weitere Informationen zur Klärung dieser Frage finden Sie auf der Seite "Fragen stellen". –

Antwort

2

Einfache Antwort, wickeln Sie Ihre Abfrage in einer abgeleiteten Tabelle und eine andere SUM tun:

select sum(sm) 
from 
(
    SELECT SUM(stand1) as sm 
     FROM wedstrijdmodule_wedstrijden 
     WHERE team1 = 25 
    UNION ALL 
    SELECT SUM(stand2) 
     FROM wedstrijdmodule_wedstrijden 
     WHERE team2 = 25 
) dt 

Switched zu UNION ALL, falls die beide Auswahl kehrt gleiche Anzahl.

Oder verwenden case Ausdrücke bedingte Aggregation zu tun:

SELECT SUM(case when team1 = 25 then stand1 else 0 end) + 
     SUM(case when team2 = 25 then stand2 else 0 end) 
FROM wedstrijdmodule_wedstrijden 
WHERE team1 = 25 or team2 = 25 
+0

Funktioniert perfekt, danke eine Million –