我想要一个字段的递归减法

问题描述 投票:0回答:0

我正在使用 P_RUC、P_ANEXO 和 P_SEC 选择多个字段作为输入数据。然后连接通过一个名为 A.CUOTAS.

的字段来获取行
SELECT LEVEL,A.*, TO_CHAR(ADD_MONTHS(A.FECHA,LEVEL),'DD/MM/YYYY') AS FECHA_CUOTAS FROM(
SELECT
NRO_CUOTAS AS CUOTAS,
NVL(TO_CHAR(FECHA_PRESTAMO,'DD/MM/YYYY'),0) AS FECHA,
TO_CHAR(TRIM(TO_CHAR(NVL(MONTO_DESCTO_PROCESO,0) + NVL(MONTO_DESCTO_ADICIONAL,0), '999999990.99')) / NRO_CUOTAS, '999999990.99') AS DSCTO,
TO_CHAR(TRIM(TO_CHAR(NVL(MONTO_DESCTO_PROCESO,0) + NVL(MONTO_DESCTO_ADICIONAL,0), '999999990.99')) - TRIM(TO_CHAR(NVL(MONTO_DESCTO_PROCESO,0) + NVL(MONTO_DESCTO_ADICIONAL,0), '999999990.99')) / NRO_CUOTAS, '999999990.99') AS SALDO
FROM PRESTAMOS
WHERE GRUPLA_EMPRESA_RUC_EMPRESA = P_RUC
AND TRA_ANEXO_COD_ANEXO = P_ANEXO
AND SECUENCIA = P_SEC
AND TRA_ANEXO_TIPANE_TIPANE_ID = 8
ORDER BY FECHA_INICIO_DESCTO)
A
    CONNECT BY level <= A.CUOTAS;         

作为输出,我得到了这个数据表。

| LEVEL  | CUOTAS |   FECHA    | DSCTO | SALDO  | FECHA_CUOTAS 
| ------ | ------ | ---------  | ----- | ------ | -----------
|   1    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/11/2020     
|   2    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/12/2020     
|   3    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/01/2021     
|   4    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/02/2021                   

我正在寻找的是创建另一个字段,其中 Saldo 字段递归地减去 DSCTO 字段。类似结果字段的东西。

| LEVEL  | CUOTAS |   FECHA    | DSCTO | SALDO  | FECHA_CUOTAS | RESULT
| ------ | ------ | ---------  | ----- | ------ | -----------  | ------
|   1    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/11/2020   | 168.75 
|   2    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/12/2020   | 112.50  
|   3    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/01/2021   | 56.25   
|   4    |   4    | 01/10/2020 | 56.25 | 168.75 | 01/02/2021   | 0               

lag levels connect-by
© www.soinside.com 2019 - 2024. All rights reserved.