sql 成绩表 case then

select * from  dbo.tb_Scroe

select Name,(select count(*) from tb_Scroe where Name = t.Name and Scroe = '胜') as '胜'
,(select count(*) from tb_Scroe where Name = t.Name and Scroe = '负') as '负'
 from tb_Scroe as t group by Name;

select a.Name ,a.胜,b.负 from
 (select count(*) 胜,Name from tb_Scroe where Scroe='胜' group by Name ) a
 left join
 (select count(*) 负, Name from tb_Scroe where Scroe='负' group by Name ) b
  on a.Name=b.Name
 
 
  select Name , sum(case when Scroe = '胜' then 1 else 0 end) '胜',
  sum(case when Scroe = '负' then 1 else 0 end) '负'
  from tb_Scroe group by Name ;
 
 
    select Name ,(case when Scroe = '胜' then 1 else 0 end) '胜',
        (case when Scroe = '负' then 1 else 0 end) '负'
  from tb_Scroe group by Name ;

Scroe

ID    Name  Scroe     CreateDate

1      张三    胜          2014-06-09 00:00:00.000
2      张三    胜          2014-06-09 00:00:00.000
3      张三    负          2014-06-09 00:00:00.000
4      李四    负          2014-06-09 00:00:00.000
5      王五    负          2014-06-09 00:00:00.000
6      李四    负          2014-06-09 00:00:00.000
7     王五     胜          2014-06-09 00:00:00.000
9     张三     负          2014-06-09 00:00:00.000
8     王五     胜          2014-06-09 00:00:00.000
10    李四    胜          2014-06-09 00:00:00.000

 

结果:

姓名   胜  负

李四    1   2
王五    2   1
张三    2   2

原文地址:https://www.cnblogs.com/wyy226wyj/p/3779008.html