第1个回答 2010-01-11
横行的把字段名加到1起
竖行的 用sum
就是说
select sum(数字字段名1+数字字段名2+....+数字字段名7)
from 表
create table #t
(
cd int,
col1 int,
col2 int,
col3 int
)
insert into #t values(1,1,1,1)
insert into #t values(2,2,2,2)
insert into #t values(1,3,3,3)
insert into #t values(2,4,4,4)
--横向求和
select cd,col1+col2+col3
from #t
--竖向
select cd,sum(col1) as col1,sum(col2) as col2,sum(col3) as col3
from #t
group by cd
--双向
select cd,sum(col1+col2+col3) as col
from #t
group by cd
第2个回答 2010-01-11
--比如,表 tb 中的字段为id,a,b,c,d,e,f,你要加abcdef,再加合计
设id 为nvarchar类型
select id,a,b,c,d,e,f, (a+b+c+d+e+f) as 小计
from tb
union all
select '合计',sum(a),sum(b),sum(c),sum(d),sum(e),sum(f), sum(a+b+c+d+e+f)
from tb
第3个回答 2010-01-11
一条记录上的字段相加
select ([字段a]+[字段b]+[字段c]) as [总和] from [表]
n条记录的相同字段相加
select sum([字段a]) as [总和] from [表]
第4个回答 2010-01-11
--> 测试数据:@tb
declare @tb table([a] int,[b] int,[c] int,[d] int)
insert @tb
select 1,2,3,4 union all
select 2,3,4,5 union all
select 3,4,5,6 union all
select 4,5,6,7
select * from(
select *,sum(a+b+c+d) as 行合计 from @tb group by a,b,c,d
union all
select sum(a),sum(b),sum(c),sum(d),sum(a+b+c+d) from @tb) as t
/*
a b c d 行合计
----------- ----------- ----------- ----------- -----------
1 2 3 4 10
2 3 4 5 14
3 4 5 6 18
4 5 6 7 22
10 14 18 22 64
*/
第5个回答 2010-01-11
列举:表如下 求 s的合
y s
1 100
2 200
3 50
。 。
。 。
。 。
先要定义a,b2个函数
select b.y,sum(a.s) ss from t a join t b on a.y<=b.y group by b.y