CREATE TABLE #t(province nvarchar(10),city nvarchar(10),score int)
insert into #t values('陕西','西安',3 )
insert into #t values('陕西','安康',4 )
insert into #t values('陕西','汉中',2 )
insert into #t values('广东','广州',5 )
insert into #t values('广东','珠海',2 )
insert into #t values('广东','东莞',3 )
insert into #t values('江苏','南京',6 )
insert into #t values('江苏','苏州',1 )
GO
-
只有一个汇总
select case when grouping(province)=1 then '合计' else province end as 省,sum(score) as 分数 from tb group by province with rollup
广东 10
江苏 7
陕西 9
合计 26
-
两级,中间小计最后汇总
select case when grouping(province)=1 then '合计' else province end 省, case when grouping(city)=1 and grouping(province)=0 then '小计' else city end 市, sum(score) as 分数 from #t group by province,city with rollup
广东 东莞 3
广东 广州 5
广东 珠海 2
广东 小计 10
江苏 南京 6
江苏 苏州 1
江苏 小计 7
陕西 安康 4
陕西 汉中 2
陕西 西安 3
陕西 小计 9
合计 26
Comments
comments powered by Disqus