日期:2014-05-19  浏览次数:20584 次

给表添加一个合计行
表结构如下:
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