有一个表test,如下:
分类 责任人
A1 王
A2 王
A2 钱
B1 汪
B2 陈
B3 周
C 江
D 胡
E 李
F1 刘
F2 赵
F3 孙
F4 温
现在要做一个统计表,格式如下:责任人 A类(含A1,A2) B类(B1,B2,B3) C类 D类 E类 F类(含F1,F2,F3,F4) 小计
王 2次 0次 0次 0次 0次 0次 2次
钱 1次 0次 0次 0次 0次 0次 1次
汪 0次 1次 0次 0次 0次 0次 1次
陈 0次 1次 0次 0次 0次 0次 1次
周 0次 1次 0次 0次 0次 0次 1次
江 0次 0次 1次 0次 0次 0次 1次
胡 0次 0次 0次 1次 0次 0次 1次
李 0次 0次 0次 0次 1次 0次 1次
刘 0次 0次 0次 0次 0次 1次 1次
赵 0次 0次 0次 0次 0次 1次 1次
孙 0次 0次 0次 0次 0次 1次 1次
温 0次 0次 0次 0次 0次 1次 1次
求这样的SQL语句怎么写?谢谢大侠!
分类 责任人
A1 王
A2 王
A2 钱
B1 汪
B2 陈
B3 周
C 江
D 胡
E 李
F1 刘
F2 赵
F3 孙
F4 温
现在要做一个统计表,格式如下:责任人 A类(含A1,A2) B类(B1,B2,B3) C类 D类 E类 F类(含F1,F2,F3,F4) 小计
王 2次 0次 0次 0次 0次 0次 2次
钱 1次 0次 0次 0次 0次 0次 1次
汪 0次 1次 0次 0次 0次 0次 1次
陈 0次 1次 0次 0次 0次 0次 1次
周 0次 1次 0次 0次 0次 0次 1次
江 0次 0次 1次 0次 0次 0次 1次
胡 0次 0次 0次 1次 0次 0次 1次
李 0次 0次 0次 0次 1次 0次 1次
刘 0次 0次 0次 0次 0次 1次 1次
赵 0次 0次 0次 0次 0次 1次 1次
孙 0次 0次 0次 0次 0次 1次 1次
温 0次 0次 0次 0次 0次 1次 1次
求这样的SQL语句怎么写?谢谢大侠!
go
create table [test]([分类] varchar(2),[责任人] varchar(2))
insert [test]
select 'A1','王' union all
select 'A2','王' union all
select 'A2','钱' union all
select 'B1','汪' union all
select 'B2','陈' union all
select 'B3','周' union all
select 'C','江' union all
select 'D','胡' union all
select 'E','李' union all
select 'F1','刘' union all
select 'F2','赵' union all
select 'F3','孙' union all
select 'F4','温'
go-->数据查询:
select
责任人,
A类=sum(case when left(分类,1)='A' then 1 else 0 end),
B类=sum(case when left(分类,1)='B' then 1 else 0 end),
C类=sum(case when left(分类,1)='C' then 1 else 0 end),
D类=sum(case when left(分类,1)='D' then 1 else 0 end),
E类=sum(case when left(分类,1)='E' then 1 else 0 end),
F类=sum(case when left(分类,1)='F' then 1 else 0 end),
小计=count(*)
from
test
group by
责任人/**
责任人 A类 B类 C类 D类 E类 F类 小计
---- ----------- ----------- ----------- ----------- ----------- ----------- -----------
陈 0 1 0 0 0 0 1
胡 0 0 0 1 0 0 1
江 0 0 1 0 0 0 1
李 0 0 0 0 1 0 1
刘 0 0 0 0 0 1 1
钱 1 0 0 0 0 0 1
孙 0 0 0 0 0 1 1
汪 0 1 0 0 0 0 1
王 2 0 0 0 0 0 2
温 0 0 0 0 0 1 1
赵 0 0 0 0 0 1 1
周 0 1 0 0 0 0 1(12 行受影响)
**/