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.
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda