Re: Reporte sql semi-offtopic

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Reporte sql semi-offtopic
Date: 2009-02-20 15:20:00
Message-ID: 499ECA20.7020600@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Conrado Blasetti escribió:
...
>
> Mas o menos lo que necesito, pero no logro que me agrupe en una sola linea
> Por ejemplo, los 3 primeros registros por periodo y cuota (1 ANTERIRO y C1), sumarizando los niveles. O Sea, que me quede:
>
> "1 ANTERIOR";"C1";10;45;0.00
> "1 ANTERIOR";"C2";10.00;0.00;20.00
>
> Eso si, quiero hacerlo en este mismo query, por que puede resolverse haciendo:
>

Prueba con:

SELECT
CASE
WHEN SUBSTRING(periodo::VARCHAR,1,4)::NUMERIC < 2009 THEN '1 ANTERIOR'
WHEN SUBSTRING(periodo::VARCHAR,1,4)::NUMERIC = 2009 THEN '2 ACTUAL'
ELSE '3 SIGUIENTE'
END AS periodo,
cuota,
SUM(CASE WHEN tipo='J' THEN valor ELSE 0.00 END) as jardin,
SUM(CASE WHEN tipo='P' THEN valor ELSE 0.00 END) as primaria,
SUM(CASE WHEN tipo='S' THEN valor ELSE 0.00 END) as secundaria
FROM foo
GROUP BY
CASE
WHEN SUBSTRING(periodo::VARCHAR,1,4)::NUMERIC < 2009 THEN '1 ANTERIOR'
WHEN SUBSTRING(periodo::VARCHAR,1,4)::NUMERIC = 2009 THEN '2 ACTUAL'
ELSE '3 SIGUIENTE'
END,
cuota

ORDER BY 1,2

Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conrado Blasetti 2009-02-20 15:21:50 RE: Reporte sql semi-offtopic
Previous Message Conrado Blasetti 2009-02-20 14:18:19 RE: Reporte sql semi-offtopic