for循环反向迭代以计算回数

时间:2019-03-29 11:11:17

标签: plsql

我正在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;

注意

余额-4747可能大于上一行的值,因此应将其调整为上一行,直到变为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

0 个答案:

没有答案