如何在一个查询SQL中对两个不同的列进行求和/计数?

时间:2014-12-08 20:53:11

标签: sql-server-2008 count sum multiple-columns difference

我是新来的,我坚持查询。 总而言之,我们有一个表"团队"它有两列,teamID和name。 然后我们有另一张表" Matches"其中包括matchID,localTeamID,visitorTeamID,localTeamGoals,visitorTeamGoals ....等等。 因此,查询需要以下内容:"返回团队的名称,指示作为本地播放的匹配数,以及作为访问者的匹配数,作为两个不同的列,在单个查询中,不允许使用光标"

问题是,你需要团队名称,所以当你在匹配和团队之间进行连接时,比如说localTeamID = teamID,你只能获得本地匹配......所以为了获得访问者。 ..你再次加入与teamTeamID相同的teamID ....但是我的问题是,对于每个本地比赛,我得到所有的访问者匹配......

如何获得正确的结果,如

Team          LocalMatches     VisitorMatches
Real Madrid             4                   5
Manchester              5                   4

请注意"总和"或"计数"在查询中可能会有所不同。 在此先感谢,我希望有人可以在这里帮助我。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的子查询:

select Name as Team
  ,(select count(*) from Matches where localTeamID = teamID) as LocalMatches
  ,(select count(*) from Matches where visitorTeamID = teamID) as VisitorMatches
from Teams