2011-03-19 75 views
2

在MSSQL与外连接时遇到/子查询

我有一个表,其中列出比赛一个球员有场赛季比赛,球员,位置

season tournament player position 
------------------------------------- 
1983 A   Mr Par 20 
1983 B   Mr Par 1 
1983 C   Mr Par 1 
1984 A   Mr Par 17 
1984 B   Mr Par 2 
1985 A   Mr Par 1 
1985 C   Mr Par 8 

我想在MSSQL创建一个查询,这将只显示我赢得的年份,公司,他根本没有赢得的所有

ie即

season player numWins 
------------------------ 
1983 Mr Par 2 
1984 Mr Par 0 
1985 Mr Par 1 

似乎无法得到正确的结果,但知道它在那里。

回答

5
SELECT season, player, 
     SUM(CASE WHEN tour_position = 1 THEN 1 ELSE 0 END) AS WINS 
    FROM your_table 
GROUP BY season, player 
ORDER BY season, player 
+0

+1:打我吧。 – 2011-03-19 02:50:29

+0

但只是因为你编辑了这个问题。谢谢。 – bernie 2011-03-19 02:51:32

1

如何:

SELECT [Season], COUNT(*) 
FROM [YourTable] 
WHERE [Position] = 1 
GROUP BY [Season] 
+0

不会出现1984年,因为没有一场胜利。 – 2011-03-19 02:50:11

+0

糟糕,错过了“他根本没有获胜”的要求。 Adam Bernier似乎有正确的答案。 – Ocelot20 2011-03-19 02:51:04