2017-10-11 25 views
-1

我需要用下面的查詢幫助它應該產生在每場比賽所做的所有目標的總和出場:SQL之和的和,或結合

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

它導致:

SUM(stand1) 
68 
77 

我需要:

SUM(stand1) 
145 

,因爲我做了SQL並搜查了大約一個小時它已經有一段時間,沒有結果。它不必看起來像是因爲它會使用php進行提取。

+0

請說明您的具體問題或添加額外的細節,突顯正是你需要的。正如目前所寫,很難確切地說出你在問什麼。請參閱如何問問頁面以獲取幫助以澄清此問題。 –

回答

2

答案很簡單,包你查詢了在派生表,做一套SUM:

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 

切換到UNION ALL,萬一兩個選擇返回相同的號碼。

或者,使用case表達式來完成有條件聚集:

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

完美地工作,感謝一百萬 –