Jorge Barzola escribió:

> Obtengo de un select con mas de 30 mil registros con la la siguiente
> información (para el ejemplo solo muestro un registro):
> 
> NRO_DOC |  EDAD |   MTO_TASA   | MTO_ABO | LX |          DX      |
> 20160978 |    65    | 0.006518349 |    6.83      |   1 | 0.006518349|
> 
> El registro de ejemplo tiene como edad 65 años por tal segun TBL_TASA se
> debe generar 46 registros aumentando la edad de uno en uno y obteniendo la
> tasa correspondiente a la edad.

Usa generate_series() para generar el rango de edades.  Algo así:

select ... FROM generate_series(65, 65+46) AS edad, ...

Agrega funciones ventana (LAG() para el registro anterior) para calcular
los valores de las otras columnas.

Como los valores 65 y 46 vienen de una tabla, los puedes poner en otro
ítem del from, algo así:

SELECT ...
   FROM TBL_TASA,
        generate_series(EDAD, EDAD + CANTIDAD) AS edad
  WHERE
etc.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply via email to