表 TEST
姓名 活动类型 日期
张三 A 2009-1-1
张三 A 2009-1-4
张三 B 2009-3-1
张三 A 2009-8-1
李四 A 2009-5-1
李四 B 2009-9-1想要的结果:姓名 活动类型 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
张三 A 2 0 0 0 0 0 0 1 0 0 0 0
张三 B 0 0 1 0 0 0 0 0 0 0 0 0
李四 A 0 0 0 0 1 0 0 0 0 0 0 0
李四 B 0 0 0 0 0 0 0 0 1 0 0 0不知道SQL怎么写,高手帮下忙哈,3Q!
姓名 活动类型 日期
张三 A 2009-1-1
张三 A 2009-1-4
张三 B 2009-3-1
张三 A 2009-8-1
李四 A 2009-5-1
李四 B 2009-9-1想要的结果:姓名 活动类型 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
张三 A 2 0 0 0 0 0 0 1 0 0 0 0
张三 B 0 0 1 0 0 0 0 0 0 0 0 0
李四 A 0 0 0 0 1 0 0 0 0 0 0 0
李四 B 0 0 0 0 0 0 0 0 1 0 0 0不知道SQL怎么写,高手帮下忙哈,3Q!
1月=sum(case when month(日期)=1 then 1 else 0 end),
2月=sum(case when month(日期)=2 then 1 else 0 end),
3月=sum(case when month(日期)=3 then 1 else 0 end),
4月=sum(case when month(日期)=4 then 1 else 0 end),
5月=sum(case when month(日期)=5 then 1 else 0 end),
6月=sum(case when month(日期)=6 then 1 else 0 end),
7月=sum(case when month(日期)=7 then 1 else 0 end),
8月=sum(case when month(日期)=8 then 1 else 0 end),
9月=sum(case when month(日期)=9 then 1 else 0 end),
10月=sum(case when month(日期)=10 then 1 else 0 end),
11月=sum(case when month(日期)=11 then 1 else 0 end),
12月=sum(case when month(日期)=12 then 1 else 0 end)
from tb group by 姓名,活动类型,year(日期)
select 姓名,活动类型,
sum(case when month(日期) = 1 then 1 else 0 end) [1月],
sum(case when month(日期) = 2 then 1 else 0 end) [2月],
sum(case when month(日期) = 3 then 1 else 0 end) [3月],
sum(case when month(日期) = 4 then 1 else 0 end) [4月],
...
sum(case when month(日期) = 12 then 1 else 0 end) [12月]
from tb
group by 姓名,活动类型
select 姓名,活动类型,year(日期) 年,
1月=sum(case when month(日期)=1 then 1 else 0 end),
2月=sum(case when month(日期)=2 then 1 else 0 end),
3月=sum(case when month(日期)=3 then 1 else 0 end),
4月=sum(case when month(日期)=4 then 1 else 0 end),
5月=sum(case when month(日期)=5 then 1 else 0 end),
6月=sum(case when month(日期)=6 then 1 else 0 end),
7月=sum(case when month(日期)=7 then 1 else 0 end),
8月=sum(case when month(日期)=8 then 1 else 0 end),
9月=sum(case when month(日期)=9 then 1 else 0 end),
10月=sum(case when month(日期)=10 then 1 else 0 end),
11月=sum(case when month(日期)=11 then 1 else 0 end),
12月=sum(case when month(日期)=12 then 1 else 0 end)
from tb group by 姓名,活动类型,year(日期)
消息 102,级别 15,状态 1,第 2 行
'=' 附近有语法错误。非常感谢各位,谢谢1