Vb6计算更新

时间:2011-05-19 08:54:37

标签: sql vb6

如何计算和更新退款?

我最初在数据库中有这三行:

NO  |  TRANAMT  |  REFUNDAMT
1   |  100      |  0 
2   |  200      |  0
3   |  300      |  0

如果退款是350,退款将更新如下,退款不能超过tranamt:

NO  |  TRANAMT  |  REFUNDAMT
1   |  100      |  100 
2   |  200      |  200
3   |  300      |  50

再次以50退款时,它只会更新最后一条记录,退款将更新如下:

NO  |  TRANAMT  |  REFUNDAMT
1   |  100      |  100 
2   |  200      |  200
3   |  300      |  100

1 个答案:

答案 0 :(得分:1)

这是一个简单的算法(不考虑多线程和锁定):

  1. 让RF成为全额退款
  2. 找到REFUNDAMT< TRANAMT并称之为ROW
  3. 计算ROW的差异DIFF:DIFF = TRANAMT - REFUNDAMT
    • 如果DIFF> = RF,请将ROW中的REFUNDAMT更新为REFUNDAMT + RF,然后就完成了。
    • 如果DIFF< RF,将ROW中的REFUNDAMT更新为TRANAMT,让RF = RF-DIFF并转到步骤2.