Impresionante Oswaldo! Gracias. Entre'nos... total no se entera nadie... No sabes lo problemático que fue la version anterior de este proyecto que estoy migrando, era en Access y cristal... codigo, parámetros, funciones de grupo, sumarizaciones, hardcodeo, etc, un calvario!
Gracias de nuevo. Saludos, Conrado -----Mensaje original----- De: Oswaldo Hernández [mailto:[email protected]] Enviado el: Viernes, 20 de Febrero de 2009 01:20 p.m. Para: Conrado Blasetti CC: [email protected] Asunto: Re: [pgsql-es-ayuda] Reporte sql semi-offtopic 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 4: No hagas 'kill -9' a postmaster
