这个问题SQL语句怎么写,最好是一句

menuvb 2004-12-31 10:03:18
表的结构 a
userid username monery
1 menuvb 200
2 aaa 100
3 bbb 300

表B
formID userid monery
1 1 20
2 2 100
3 3 50

现在在表B中,除了userid=3的记录,按表B中的monery字段值重新更新到表A中。比如
userid=1 更新之后为 monery=220
userid=3 更新之后为 monery=350

想了半天,只想出了循环来更新。但实在太麻烦了,所以想请教下能不能一句话就可以了?
...全文
256 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
华乐 2005-01-02
  • 打赏
  • 举报
回复
lxd99423(苹果)写对了,可以得到正确结果。
deng1107 2005-01-02
  • 打赏
  • 举报
回复
update a set money=a.monery+b.monery from a,b where a.userid=b.userid and a.userid<>3
sujian2004515 2005-01-02
  • 打赏
  • 举报
回复
我也来学习了!!!
U2U2U2U2 2005-01-01
  • 打赏
  • 举报
回复
不明白你的意思
我的理解是a,b表按照userid建立关联然后在b表中排除userid=3的记录

UPDATE a SET monery = b.monery FROM a,b WHERE a.userid = b.userid AND B.userid<>3
zhaojiajin 2005-01-01
  • 打赏
  • 举报
回复
同意 wannianliu()的看法!
up!
caobin518 2005-01-01
  • 打赏
  • 举报
回复
lxd99423(苹果) 说得有道理。。。。
lxd99423 2005-01-01
  • 打赏
  • 举报
回复
--漏了一个条件
update a
set monery=a.monery+b.monery
from 表A a,(select userid,sum(monery) as monery from 表B where userid<>3 group by userid) b
where a.id=b.id
lxd99423 2005-01-01
  • 打赏
  • 举报
回复
表B有重复记录的话,需要先对B表汇总,否则会有问题

update a
set monery=a.monery+b.monery
from 表A a,(select userid,sum(monery) as monery from 表B group by userid) b
where a.id=b.id
vinsonshen 2005-01-01
  • 打赏
  • 举报
回复
update a set a.monery = a.monery + b.monery from 表A as a ,表B as b where a.userid = b.userid and b.userid <> 3
menuvb 2004-12-31
  • 打赏
  • 举报
回复
谢谢各位@
我试试看
  • 打赏
  • 举报
回复
UPDATE tabA
SET money = money +(SELECT tabB.money FROM tabB WHERE tabB.userID = tabA.userID)
WHERE (userID <> 3)
wannianliu 2004-12-31
  • 打赏
  • 举报
回复
如果除了userid=3之外,還應加一個條件
update a set monery=monery+(select monery from b where userid=a.userid)
where userid<>3
bluebird_1982 2004-12-31
  • 打赏
  • 举报
回复
用游标,一个一个取。
wannianliu 2004-12-31
  • 打赏
  • 举报
回复
update a set monery=monery+(select monery from b where userid=a.userid)
子陌红尘 2004-12-31
  • 打赏
  • 举报
回复
update 表A set monery = monery + b.monery from 表A a ,表B b where a.userid = b.userid
and a.userid <> 3
menuvb 2004-12-31
  • 打赏
  • 举报
回复
不行,实际不了我的结果。我需要除了USERID=之外,更新A表的所有monery字段值
good2speed 2004-12-31
  • 打赏
  • 举报
回复
试试
UPDATE a SET monery = b.monery FROM a,b WHERE a.id = b,id
hglhyy 2004-12-31
  • 打赏
  • 举报
回复
UPDATE a SET monery = b.monery FROM a,b WHERE a.id = b.id AND B.userid<>3
xiaoxiangqing 2004-12-31
  • 打赏
  • 举报
回复
update 表A set monery = monery + b.monery from 表A a join 表B b on a.userid = b.userid
and a.userid <> 3
poonz 2004-12-31
  • 打赏
  • 举报
回复
学习

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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