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 mar., 30 de oct. de 2018 a la(s) 13:58, Jorge Barzola (
jorgebarz...@gmail.com) escribió:

> 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.
>
>

-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Reply via email to