我正在Plsql程序中工作,在其中使用for循环计算运行余额。当循环结束时,最后一行的余额为负或正,因此我想将剩余余额调整为上一行,直到余额变为0,如下例所示
1 1362 16802
2 1362 15440
3 1362 14078
4 14125 -47
高于数字-47
的尚有运行余额,它可能在47
中为正数。我想要的总是剩余余额应为0,如果它是负数或正数,则应调整为上一行。喜欢
1 1362 16802
2 1362 15440
3 1362+47 14078
4 14125 0
另一个示例,当47为正数时。
1 1362 16802
2 1362 15440
3 1362 14078
4 14125 47
它将是
1 1362 16802
2 1362 15440
3 1362-47 14078
4 14125 0
这是我的代码,太简单了,无法计算出运行余额
FOR j IN 1 .. l_installment_cnt LOOP
IF l_bal_flg = 'Y' THEN
l_curr_bal := l_calcaulatedbalance - l_install_amt;
l_bal_flg := 'N';
ELSE
l_curr_bal := l_curr_bal - l_install_amt;
END IF;
l_install_seq := l_install_seq+1;
END LOOP;
注意
余额-47
或47
可能大于上一行的值,因此应将其调整为上一行,直到变为0为止。
1 1362 16802
2 1362 15440
3 1362 14078
4 14125 -1447
it should be like
1 1362 16802
2 1362+85 15440
3 1362+1362 14078
4 14125 0