T-SQL多个小计+合计,分类汇总

select 
    case when grouping(姓名)=1 then '合计' else cast(姓名 as varchar) end 姓名, 
    case when grouping(学期)=1 and grouping(姓名)=0 then '姓名小计' else cast(学期 as varchar) end 学期, 
    case when
    cast(学期 as varchar)<>cast('姓名小计' AS varchar) and ISNULL(考次, '') = '' 
    then '学期小计' else 考次 end as 考次,
    sum(语文) as 语文,sum(数学) as 数学,sum(英语) as 英语,sum(政治) as 政治
from 
   tb 
group by 
   姓名,学期,考次
with rollup 
 

 

 

posted @ 2020-05-15 17:11  临沂东哥  阅读(384)  评论(0编辑  收藏  举报