求按月分类统计的SQL
表a:
id No CName
1 AB0701-001 A
2 AB0701-002 B
3 AB0702-001 C
4 SE0702-001 D
5 AB0703-001 B
6 SE0702-002 F
No开头2个字母是代号,07是年份,01是月份,-后面的是业务顺序号(有空号)
要求统计:按代号统计每个代号每月的业务量;按月份统计每个月的业务量,即:
按代号:
代号 月份 业务量
AB 1 2
AB 2 1
AB 3 1
SE 2 2
按月份
月份 代号 业务量
1 AB 2
2 AB 1
SE 2
3 AB 1
按CName
CName 月份 业务量
A 1 1
------解决方案----------------------按代號
select 代号 = left(No,2),月份 = substring(No,5,2), 业务量 = count(1) from a group by
代号,月份 order by left(No,2),substring(No,5,2)
--按月份
select 月份 = substring(No,5,2),代号 = left(No,2), 业务量 = count(1) from a group by
月份, 代号 order by substring(No,5,2),left(No,2)
--按CName
select CName,月份 = substring(No,5,2),业务量 = count(1) from a group by CName,月份
order by CName,substring(No,5,2)
------解决方案--------------------create table test(id int,No varchar(20),CName varchar(10))
insert test select 1, 'AB0701-001 ',