求这个存储过程怎么写?(循环判断)

lookandlook 2005-10-15 11:35:32
现在有两个表a 和 b
a表:
userid money enable
1 1000 1
2 1000 1
b表 :
userid number
1 10
1 20
1 30
2 10
2 20
2 30

请叫如何在存储过程中让a表对应的userid的money减去b表的number,然后再存到a表的money中?

下面是我写的,只能解决部分问题!我怎么写可以做个判断?如果money <=0 就做update enable = 0,而不做下面的update

update a set money =money - c.num from a,(select userid,sum(b.num) as num from b group by userid)c where a.userid=c.userid


怎么写可以循环一次都做了。
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
520zyb 2005-10-15
  • 打赏
  • 举报
回复
update a set
money=case when (a.money-c.money)<=0 then a.money else a.money-c.money end
,enable=case when (a.money-c.money)<=0 then 0 else 1 end
from a,(select userid, money=sum(number) from b group by userid) c
where a.userid=c.userid

34,587

社区成员

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

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