请教一个存储过程如何写

dingshaojun7 2012-12-01 10:01:09
现在有两张表A和B,A表用来存放用户的账户余额,B表用来存放每笔扣款金额,通过B表关联A表,修改A表中的实际余额

A表

序列号 用户ID 初始金额 存入时间 实际余额 渠道

1 123 100 2012-11-30 100 移动
2 123 100 2012-12-1 100 联通

B表

序列号 用户ID 扣款金额 扣款时间 渠道

1 123 20 2012-12-1 移动
2 123 100 2012-12-1 联通

现在的需求是想通过存储过程来实现对A表实际余额的扣费操作

比如用户第一次扣款20元,那么该信息会先写入B表,然后通过用户id关联到A表,因为同一个用户可能会通过不同渠道存入多笔金额,所以在修改实际余额之前,要先找到A表所有当前用户id的信息,然后对时间做排序。找到最早存入的那笔金额,然后再对其进行扣款。那么第一次扣款20后,相当于A表的第一条记录的实际余额会变成80.这里还有一个问题,就是当第二次扣款100元时,通过关联找到A表对应的记录后,因为之前A的移动账户中只剩80元了,那么这次要先把移动账户中的80元扣完,然后再扣联通账户中的20元。这里是否是需要写个循环或是判断之类的。请教像这样的业务逻辑,存储过程要怎么写?
...全文
58 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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