sql语句,sum相关。比较难~~求教~~~

zhyoli 2006-03-19 07:01:04
如何对A表里的A1列和A2列相乘得到的值进行SUM统计。
比如:
A1 A2
---------------
10 20.2
22.4 33.9


先计算A1*A2的值。然后sum这个值放入一个标量。
...全文
392 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlp321002 2006-03-20
--SQL server 2005
declare @t float;
WITH TBCTE
AS
(
SELECT A1*A2 as sumA1A2 FROM TB
)
SELECT @t=sum(sumA1A2) FROM TBCTE
select @t
/*
----------------------
961.36

(1 行受影响)
*/
回复
zhaiyf 2006-03-20
目的只是求和的话select sum(a3) from(select A1*A2 a3 from mytable)可以实现。`
回复
DigData 2006-03-20
sum 是aggregate函数,和其它列一起使用时要加group分组的. 如

select c1,c2,sum(c1*c2) as res from tab group by 1,2
回复
zfl2k 2006-03-20
如果要显示其他列的话就必须在group by 里出现该字段:
select c1,c2,sum(a1*a2) as a3 from table [where] [group by c1,c2]
回复
zfl2k 2006-03-20
sql server oracle 可以直接:
select sum(a1*a2) as a3 from table [where] [group]
回复
wuyg719 2006-03-19

select sum(a3) from(select A1*A2 a3 from mytable)
回复
zhyoli 2006-03-19
但是我的 客户端用的.net啊 ~sql应该相同的吧····
回复
boblaile 2006-03-19
db2的怎么到sql来了
回复
zhyoli 2006-03-19
我的数据库是 db2的。。。。。=号不认识啊~
回复
aniude 2006-03-19
declare @t table(a1 float,a2 float)
insert into @t select 10,20.2
union all select 22.4,33.9
select sum_all = sum(a1*a2) from @t
declare @tt float

sum_all
-----------------------------------------------------
961.3599999999999
回复
zhyoli 2006-03-19
我的查询语句牵涉到多个表。。不过只有一个表里需求运算。。。我用sum(A1*A2) as xxx 提示什么group by,还有having 一类的。我没有用group by 啊。。
是不是要在where 或者order by 语句后面写点什么~
回复
aniude 2006-03-19
---------------------
select sum_all=sum(a1*a2) from a
回复
xeqtr1982 2006-03-19

declare @t table(a1 dec(10,2),a2 dec(10,2))
insert into @t select 10,20.2
union all select 22.4,33.9

select sum(a1*a2) as [sum] from @t
--这样?
回复
boblaile 2006-03-19
我的表aa 有字段
a,b,c求a*b然后sum求和
SELECT sum(DISTINCT p.a*k.b) as g
FROM aa AS p INNER JOIN aa AS k
ON p.c = k.c


回复
zhyoli 2006-03-19
最好是可以AS到某个变量。这样便于我输入到屏幕上。而且定义变量没有办法的。我是一条查询语句。。没有办法定义的。
回复
huailairen 2006-03-19
create table MM(A1 float, A2 float)
---------------
insert into MM values(10 , 20.2)
insert into MM values(22.4 , 33.9)

declare @m float
set @m=0
select @m=@M+A1*A2 from MM

print @M
回复
boblaile 2006-03-19
帮你顶下
不会!
好像要用到表的内连接
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-19 07:01
社区公告
暂无公告