From: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
---|---|
To: | jorgebarzola(at)gmail(dot)com |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda con armar saldos |
Date: | 2018-11-02 12:40:12 |
Message-ID: | CANm+PCAFR8Cq4bbvW=Gq+-J2iFf+QXTHtwcPYK=y71tre+U2Ug@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Está probado y anda:
create function fntasas() returns
table (tid integer, ttasa decimal(10,8), lx decimal(10,8), dx
decimal(10,8)) as
$$
declare
lx1 decimal(10,8):= 1.0;
dx1 decimal(10,8):= 0.0;
lr_registro RECORD;
begin
FOR lr_registro IN select id,tasa from tasas ORDER BY id LOOP
tid := lr_registro.id;
ttasa := lr_registro.tasa;
lx := lx1;
dx := ttasa * lx1;
return next;
lx1:= lx - dx;
END LOOP;
return;
end;
$$
LANGUAGE plpgsql;
llamás a la función con
select * from fntasas();
El mar., 30 oct. 2018 a las 15:58, Jorge Barzola (<jorgebarzola(at)gmail(dot)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.
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alfredo Guzman Pacherres | 2018-11-02 21:51:38 | RE: Tamaño de Campo UUID |
Previous Message | Carlos Edward Grajales Marmolejo | 2018-11-01 22:07:09 | Re: Tamaño de Query |