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

Responder a