请教一个存储过程如何写
现在有两张表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元。这里是否是需要写个循环或是判断之类的。请教像这样的业务逻辑,存储过程要怎么写?