el case when tiene que funcionar... select municipio, indicador, sum(case anyo when 2003 then 1 else 0 end) as anyo2003, sum(case anyo when 2004 then 1 else 0 end) as anyo2004, sum(case anyo when 2005 then 1 else 0 end) as anyo2005 from latabla group by municipio, indicador
no se que tipo de datos es anyo pero no cambia mucho las cosas. Saludos El 11 de mayo de 2009 13:25, Fernando Hevia <fhe...@ip-tel.com.ar> escribió: > > > > -----Mensaje original----- > > De: pgsql-es-ayuda-ow...@postgresql.org > > [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de FRANK RADA > > Enviado el: Lunes, 11 de Mayo de 2009 12:25 > > Para: pgsql-es-ayuda@postgresql.org > > Asunto: [pgsql-es-ayuda] Select horizontal > > > > Hola gente, estoy escribiendo una consulta la cual me debe > > ordenar por año los valores de un indicador para un municipio > > de la siguiente forma, el resultado va a hacer utilizados > > para crear una capa de charts en mapserver > > > > ejemplo de la tabla > > > > municipio indicador Anyo Medida_indicador > > Cucuta homicidios 2003 1 > > salazar homicidios 2003 2 > > Cucuta homicidios 2004 1 > > salazar homicidios 2004 3 > > > > ejemplo de la consulta que se desea obtener > > > > municipio Indicador Anyo2003 Anyo2004 > > Cucuta Homicidios 1 1 > > salazar homicidios 2 3 > > > > > > La función crosstab puede ayudarte en tu objetivo. > Esta viene en el contrib tablefunc. > > http://www.postgresql.org/docs/8.3/interactive/tablefunc.html > > Saludos. > > -- > TIP 2: puedes desuscribirte de todas las listas simultáneamente > (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org) >