Saludos Te paso éste SQL que hice para hacer un reporte de las ventas por mes distribuidas en años cómo una sola consulta
with T1 as (select extract(year from fechacreacion) as anio, extract(month from fechacreacion) as mes, total from factura), T2 as (select anio, mes, sum(total)as suma from T1 group by anio, mes) select anio, SUM(case when mes = 1 then suma else 0 end) as ene, SUM(case when mes = 2 then suma else 0 end) as feb, SUM(case when mes = 3 then suma else 0 end) as mar, SUM(case when mes = 4 then suma else 0 end) as abr, SUM(case when mes = 5 then suma else 0 end) as may, SUM(case when mes = 6 then suma else 0 end) as jun, SUM(case when mes = 7 then suma else 0 end) as jul, SUM(case when mes = 8 then suma else 0 end) as ago, SUM(case when mes = 9 then suma else 0 end) as sep, SUM(case when mes = 10 then suma else 0 end) as oct, SUM(case when mes = 11 then suma else 0 end) as nov, SUM(case when mes = 12 then suma else 0 end) as dic from T2 group by anio order by anio Seguramente existirán muchas otras formas. El 15 de mayo de 2017, 11:36, Enrique Gushiken <kgushi...@gmail.com> escribió: > Buenos días, > Estoy tratatando de realizar una consulta tipo referencia cruzada en > postgresql pero no logro obtener resultados. En access lo he logrado > realizar de la siguiente manera: > > TRANSFORM Sum(total) AS Total > SELECT tema, archivo > FROM Descargas > GROUP BY tema, archivo > PIVOT mes; > > en postgresql intento con lo siguiente: > > SELECT * FROM crosstab( > 'SELECT archivo, mes, total FROM v_descargas order by 1, 2', > 'SELECT m FROM generate_series(1,12) m' > ) AS report ( > archivo text, "Ene" text, "Feb" text, "Mar" text, "Abr" text, "May" > text, "Jun" text, "Jul" text, "Ago" text, "Sep" text, "Oct" text, "Nov" > text, "Dic" text > ); > > esto me devuelve la cantidad de filas y columnas exactas pero en valor me > sale nulo, no llega a contabilizar cuantas descargas por mes tiene un > archivo. > > la idea es que me muestra un cuadro similar a esto: > > NombreArchivo Ene Feb Mar Abr May .... > =========== === === === === === > Archivo 1 2 1 4 3 7 > Archivo 2 5 9 8 4 6 > Archivo 3 6 7 2 1 4 >