一个关于sum的问题!

huyidehyd 2003-10-19 04:22:07
table a,列为:a,b,类型为demical,我想取sum(a*b),但结果总是实际的两倍,为什么,应该怎么写?
...全文
39 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyidehyd 2003-10-20
  • 打赏
  • 举报
回复
to wzh1215(四脚蛇) ,那该如何写啊
huyidehyd 2003-10-20
  • 打赏
  • 举报
回复
楼上的老大,我现在是在查询分析器理试验的啊
wzh1215 2003-10-20
  • 打赏
  • 举报
回复

select a.a,a.c from a,b
WHERE a.c = '1' AND a.c=b.c
这样联合的查询是结果是四条记录的统计,当然就是计算两倍了!
sdhdy 2003-10-20
  • 打赏
  • 举报
回复
确实如此!你先看看这个就知道了!
SELECT a.a as Sum1,b.a*b.b as Sum2
FROM a,b
WHERE a.c = '1' AND a.c=b.c
-----------------------------
5.50 5.00
4.50 5.00
5.50 5.00
4.50 5.00
yujohny 2003-10-20
  • 打赏
  • 举报
回复
肯定是你的代码有误,或者执行两次
或者你前台已执行了一次,后台又算了一次
huyidehyd 2003-10-20
  • 打赏
  • 举报
回复
create table a(a decimal(18,2),c varchar(10))
select * from a
insert into a values(5.5,1)
insert into a values(4.5,1)

create table b(a decimal(18,2),b int(4),c varchar(10))
select * from b
insert into b values(2.5,2,1)
insert into b values(5,1,1)

我用的sql语句是:

SELECT sum(a.a) as Sum1,sum(b.a*b.b) as Sum2
FROM a,b
WHERE a.c = '1' AND a.c=b.c
得到:
sum1=20,sum2=20

我想取a.c=b.c=1是的sum1,sum2

huyidehyd 2003-10-20
  • 打赏
  • 举报
回复
楼上的,好像不行啊!
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

另行开贴!
wzh1215 2003-10-20
  • 打赏
  • 举报
回复
这个不知行不行!
SELECT a.a as Sum1,(select b.a*b.b from b where a.c=b.c) as Sum2
FROM a
WHERE a.c = '1'
welyngj 2003-10-19
  • 打赏
  • 举报
回复
源代码
wzh1215 2003-10-19
  • 打赏
  • 举报
回复

create table table11(a decimal(18,2),b decimal(18,2))
select * from table11
insert into table11 values(2,3)
insert into table11 values(3,4)
select sum(a*b) from table11

----------------------------------------
18.0000

(1 row(s) affected)

结果没有翻倍呀·!

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧