Date Tags sql / rollup
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
  1. 只有一个汇总

    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

  2. 两级,中间小计最后汇总

    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