读书人

给表添加一个合计行,该如何处理

发布时间: 2012-02-05 12:07:15 作者: rapoo

给表添加一个合计行
表结构如下:
ProvinceID ProvinceName UserCount
1 河北 200
2 山西 154
3 河南 234
4 山东 234
5 新疆 456
6 西藏 123
... ... ...

我想用一条语句生成一个如下的结果

ProvinceID ProvinceName UserCount
0 全国 1432
1 河北 200
2 山西 154
3 河南 234
4 山东 234
5 新疆 456
6 西藏 123
... ... ...
如何实现阿?

[解决办法]
select [ProvinceID]=0,[ProvinceName]= '全国 ',[UserCount]=sum(UserCount) from tablename
union all
select ProvinceID,ProvinceName,UserCount from tablename
[解决办法]
反过来写可能简单点。

select ProvinceID,ProvinceName,UserCount from tablename
union all
select 0, '全国 ',sum(UserCount) from tablename

[解决办法]
INSERT INTO tablename (ProvinceID,ProvinceName,UserCount)
values (0, '全国 ',(select sum(UserCount) from tablename))
[解决办法]
create table t1(ProvinceID int,ProvinceName varchar(10),UserCount numeric(18,0))
go
insert into t1
select 1, '河北 ',200
union all
select 2, '山西 ',154
union all
select 3, '河南 ',234
union all
select 4, '山东 ',234
union all
select 5, '新疆 ',456
union all
select 6, '西藏 ',123
go

select ProvinceID,ProvinceName,UserCount
into #t1
from t1
go
insert into #t1


select 0 as ProvinceID, '全国 ' as ProvinceName,sum(t2.UserCount)
from (select sum(UserCount) as UserCount from t1) as t2

select * from #t1

drop table t1
drop table #t1

读书人网 >SQL Server

热点推荐