create table #t(地区 varchar(10),品名 varchar(10),一月 int,二月 int,三月 int,四月 int) insert #t select 'A','B',2,3,4,5 union select 'A','B',1,2,3,4 union select 'A','C',0,1,2,3 union select 'A','C',4,5,6,7 select * from #tselect * from #t union select 地区,品名 + '小计',sum(一月),sum(二月),sum(三月),sum(四月) from #t group by 地区,品名 union select '总计','总计',sum(一月),sum(二月),sum(三月),sum(四月) from #tdrop table #t
地区 品名 一月 二月 三月 四月 select * from ( select * from #temptable union all select 地区,品名+'小计' as 品名, sum(一月), sum(二月), sum(三月), sum(四月) from #temptable group by 地区,品名+'小计' ) tmp order by 地区,品名
(所影响的行数为 4 行)地区 品名 一月 二月 三月 四月 ---------- ---------- ----------- ----------- ----------- ----------- A B 1 2 3 4 A B 2 3 4 5 A C 0 1 2 3 A C 4 5 6 7(所影响的行数为 4 行)地区 品名 一月 二月 三月 四月 ---------- -------------- ----------- ----------- ----------- ----------- A B 1 2 3 4 A B 2 3 4 5 A B小计 3 5 7 9 A C 0 1 2 3 A C 4 5 6 7 A C小计 4 6 8 10 总计 总计 7 11 15 19(所影响的行数为 7 行)
create table #t(地区 varchar(10),品名 varchar(10),一月 int,二月 int,三月 int,四月 int)
insert #t
select 'A','B',2,3,4,5
union select 'A','B',1,2,3,4
union select 'A','C',0,1,2,3
union select 'A','C',4,5,6,7
select * from #tselect * from #t
union
select 地区,品名 + '小计',sum(一月),sum(二月),sum(三月),sum(四月) from #t group by 地区,品名
union
select '总计','总计',sum(一月),sum(二月),sum(三月),sum(四月) from #tdrop table #t
select * from (
select * from #temptable
union all
select 地区,品名+'小计' as 品名, sum(一月), sum(二月), sum(三月), sum(四月)
from #temptable
group by 地区,品名+'小计'
) tmp
order by 地区,品名
(所影响的行数为 4 行)地区 品名 一月 二月 三月 四月
---------- ---------- ----------- ----------- ----------- -----------
A B 1 2 3 4
A B 2 3 4 5
A C 0 1 2 3
A C 4 5 6 7(所影响的行数为 4 行)地区 品名 一月 二月 三月 四月
---------- -------------- ----------- ----------- ----------- -----------
A B 1 2 3 4
A B 2 3 4 5
A B小计 3 5 7 9
A C 0 1 2 3
A C 4 5 6 7
A C小计 4 6 8 10
总计 总计 7 11 15 19(所影响的行数为 7 行)