34,590
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (a varchar(4),b varchar(5),c int)
insert into #T
select '合并','内蒙1',160 union all
select '合并','内蒙2',null union all
select '合并','张家1',100 union all
select '非合','北京1',130 union all
select '非合','北京2',null union all
select '非合','北京3',null
select case when grouping(b)=1 then '--小计--' else a end a,
case when isnull(b,'')='' then '' else b end b,
sum(c) c
from #T
group by a,b
with rollup
having grouping(a)=0
/*
a b c
-------- ----- -----------
非合 北京1 130
非合 北京2 NULL
非合 北京3 NULL
--小计-- 130
合并 内蒙1 160
合并 内蒙2 NULL
合并 张家1 100
--小计-- 260
*/