Reporte sql semi-offtopic

From: "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Reporte sql semi-offtopic
Date: 2009-02-20 11:59:00
Message-ID: 76A99F19229DC440909CF1B905F8012C078C4E78@sar001998.Mapfre.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gente, buenos días.

Comence a programar una funcion que retornaría un refcursor, pero antes de seguir, quería consultarles si es posible resolverlo desde una consulta sql.

Veamos,
Tengo una tabla foo:

periodo numeric
valor numeric
cuota varchar(3)
tipo varchar(1)

Los datos que ingreso en ella, son estos:

Periodo valor cuota tipo
200610 10 C1 J
200510 15 C1 P
200811 20 C2 S
200811 10 C2 J
200812 30 C1 P

200901 40 C2 S
200901 10 C1 J
200901 10 C3 P
200902 20 C3 S
200902 30 C2 J
200902 40 C1 P
200902 20 C1 S

201001 10 C1 J
201001 30 C1 P
201101 40 C1 S
201102 35 C2 J
201003 15 C1 P
201203 95 C2 S

Bueno, es un ejemplo de un sistema de cobranza donde debería armar un reporte agrupando:

Periodo Anterior (en este caso 2005,2006,2008)
Periodo Actual (en este caso 2009)
Periodo Siguiente (en este caso 2010,20011,20012)

Esto sería agrupando el valor y el tipo pero....

Necesitan el tipo dispuesto en columna y el periodo en filas, o sea, con los datos de arriba:

Periodo Anterior (en este caso 2005,2006,2008)

Cuota TIPO J TIPO P TIPO S
C1 10 45 0
C2 10 0 20
C3 0 0 0
C4 0 0 0

Periodo Actual (en este caso 2009)

Cuota TIPO J TIPO P TIPO S
C1 10 40 20
C2 30 0 40
C3 0 10 20
C4 0 0 0

Periodo Actual (en este caso 2010,20011,20012)

Cuota TIPO J TIPO P TIPO S
C1 10 45 40
C2 35 0 95
C3 0 0 0
C4 0 0 0

Bueno, espero se pueda interpretar el tipo de informe que necesito.
Ven que C4 no tiene valor, es por que es una cuota que existe pero sin datos, o sea, un IN (c1,c2,c3,c4) no me sirve, ya que c4 no tiene filas y no me apareceran.
Por otro lado, J P S son los niveles Jardin Primaria Secundaria, son atributos de la fila pero tranquilamente se puede _hardcodear_ para encolumnar, no va a crecer.

Bueno, si esto es posible hacerlo por sql, realmente me van a sorprender jeje.
Igualmente, evaluo el costo-beneficio, si el sql es muy muy muy enrollado para mantener, por ahí el costo de seguir con una funcion refcursor es mas beneficioso.

Desde ya, gracias.
Saludos,
Conrado

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conrado Blasetti 2009-02-20 14:18:19 RE: Reporte sql semi-offtopic
Previous Message yanetcita l 2009-02-20 01:16:35 Refcursor y Ado