MS SQL问题!高手请进!

来源:百度知道 编辑:UC知道 时间:2024/07/07 13:19:17
用MS SQL语句实现如下功能:
表名:table
满如如下条件:
(1)若表内容如下:
id 胜 负
1 a b
2 b a
3 b a
则输出:
name 胜 负
a 1 2
b 2 1
(2)若a三场全胜(table格式依然如上),则输出结果为:
name 胜 负
a 3 0
b 0 3
(3)若b三场全胜(table格式依然如上),则输出结果为:
name 胜 负
a 0 3
b 3 0
————————
用一个MS SQL语句,同时满足以上三种情况。
多谢。

刚才没看到表名,如此这般便可:
select a1.name,count(case when a2.胜=a1.name then 1 end) as 胜,count(case when a2.负=a1.name then 1 end) as 负 from
(select distinct name from (select 胜 as name from table union all select 负 as name from table) as a1,table as a2
group by a1.name