Hola lista

Algo así seria:

WITH RECURSIVE t(id,tasa,lx,dx) AS (
                SELECT a.id,a.tasa,1::numeric as lx,1*a.tasa as dx
                FROM (values(65,0.013670563
),(66,0.015125920),(67,0.016741070),(68,0.018533249),(69,0.020521473),(70,0.022726715))
as a(id,tasa)
where id=65
              UNION ALL
                SELECT a.id,a.tasa,t.lx-t.dx,a.tasa*(t.lx-t.dx)
                FROM (values(65,0.013670563
),(66,0.015125920),(67,0.016741070),(68,0.018533249),(69,0.020521473),(70,0.022726715))
as a(id,tasa)  join t on a.id-1=t.id

            )
            SELECT * FROM t order by id asc



El jue., 1 de nov. de 2018 a la(s) 10:29, Carlos Perez (
carlos.pe...@syswarp.com.ar) escribió:

> Creo que lo mejor seria hacer una funcion recursiva y usarla en tu
> consulta.
> No se que respuesta puede tener esto con la performance si tenes que
> consultar muchos datos, pero las veces que me tocaron cosas parecidas, a mi
> me resultaron.
>
>
>
>
> [image: Mailtrack]
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&;>
>  Remitente
> notificado con
> Mailtrack
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&;>
>  11/01/18,
> 8:41:38 AM
>
> El jue., 1 nov. 2018 a las 2:04, Horacio Miranda (<hmira...@gmail.com>)
> escribió:
>
>> Es mi idea o estas tratando de armar los saldos in solutos, intereses y
>> pagos con interes compuesto ?
>> On 31/10/2018 7:58 AM, Jorge Barzola wrote:
>>
>> Hola estimados:
>>
>> Necesito armar el siguiente cuadro:
>>
>> id  | tasa               | lx                  | dx
>> ------------------------------------------------------------
>> 65 | 0.013670563 | 1.00000000 | 0.01367056
>> 66 | 0.015125920 | 0.98632944 | 0.01491914
>> 67 | 0.016741070 | 0.97141030 | 0.01626245
>> 68 | 0.018533249 | 0.95514785 | 0.01770199
>> 69 | 0.020521473 | 0.93744586 | 0.01923777
>> 70 | 0.022726715 | 0.91820809 | 0.02086785
>>
>> - Los datos de id y tasa son fijo (estan en una tabla).
>> - Siempre en la columna lx en el primer registro sera 1.00000000
>> - La columna dx se obtiene de tasa * lx
>> - En la columna lx, apartir del segundo registro el resultado se obtiene
>> de (lx - dx) de un registro anterior.
>>
>> Alguna idea por favor.
>>
>> Saludos.
>>
>>
>
> --
> --
> Carlos Enrique Perez, +5411-95402-8667
> Managing Director
> * ___*
> *|   |> syswarp *
> *|___|  *
> www.syswarp.com
>
>

-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.

Reply via email to