日期:2014-05-18  浏览次数:20502 次

求SQL相加后增一行输出
如下的数据
m n
a 1
a 1
a 1
b 2
b 2
b 2
...
把所有的当m相同的时候将n的值相加,然后按照m排序后在最后一行新增
m n 
a 1
a 1
a 1
a 3
b 2
b 2
b 2
b 6
...


------解决方案--------------------
union all联合一个select m,sum(n) from tb group by m
然后做个排序。
------解决方案--------------------
/*
m n
a 1
a 1
a 1
b 2
b 2
b 2
把所有的当m相同的时候将n的值相加,然后按照m排序后在最后一行新增
m n
a 1
a 1
a 1
a 3
b 2
b 2
b 2
b 6

*/
go
if OBJECT_ID('tbl') is not null
drop table tbl
go
create table tbl(
m varchar(5),
n int
)
go
insert tbl
select 'a',1 union all
select 'a',1 union all
select 'a',1 union all
select 'b',2 union all
select 'b',2 union all
select 'b',2
select * from tbl
union all
select m,SUM(n) from tbl group by m order by m,n
/*
结果:
m n
a 1
a 1
a 1
a 3
b 2
b 2
b 2
b 6
*/