2017-10-11 44 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

完美地工作,感谢一百万 –