火急......

wangfeixue 2003-03-13 02:17:16
有三个表
表ythbzlb
hbbm int , addmoney float
1 0
2 0

表cpjcdmxb
id hbbm(外键), sl, dj,
1 1 1 10
1 1 1 5

表ytfwh 表
hbbm 外键,whsl float,
空表

要求:
得到的结果正确为
表ythbzlb
hbbm int , addmoney float
1 7.5
2 0


我写了一段程序

update ythbzlb
set ythbzlb.addmoney=((D.whsl+ythbzlb.addmoney)+(c.dj*c.sl))/(d.whsl+c.sl) //公式是正确的.
From (select
a.hbbm
sl=isnull(a.sl,0),
dj= isnull(A.dj,0)
from cpjcdmxb a
group by a.hbbm) c,
(select hbbm,sum(isnull(whsl,0)) whsl from ytfwh group by hbbm) D
where ythbzlb.hbbm=C.hbbm And c.hbbm=D.hbbm

但是得到的结果为

表ythbzlb
hbbm int , addmoney float
1 5 //正确应该是7.5
2 0

我找到原因在哪里。
(select hbbm,sum(isnull(whsl,0)) whsl from ytfwh group by hbbm) D
出在这句上。
sum(isnull(whsl,0)) whsl 每次都是一样的。

应该在update ythbzlb之后 再update ytfwh set whsl=whsl+c.sl
这样才可以得到正确结果。

但是两个update不能同时写,不知道怎么办。

不知道我描述清楚没有。
...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chiff 2003-03-13
  • 打赏
  • 举报
回复
请将另一个未回复的重复帖子删掉。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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