Re: Ayuda con armar saldos

2018-11-02 Thread Guillermo E. Villanueva
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 ()
escribió:

> Hola estimados:
>
> Necesito armar el siguiente cuadro:
>
> id  | tasa   | lx  | dx
> 
> 65 | 0.013670563 | 1. | 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.
> - 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.
>
>


Re: Ayuda con armar saldos

2018-11-01 Thread Hellmuth Vargas
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]
> 
>  Remitente
> notificado con
> Mailtrack
> 
>  11/01/18,
> 8:41:38 AM
>
> El jue., 1 nov. 2018 a las 2:04, Horacio Miranda ()
> 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. | 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.
>> - 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.


Re: Ayuda con armar saldos

2018-10-31 Thread Horacio Miranda
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. | 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.
- 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.