2011/2/10 Alexsander Rosa <[email protected]> > Eu gostaria de algo assim: > > select * from alguma_funcao( > 'select year, month, qty from sales order by 1', > 'select m from generate_series(1,12) m', > > 'select nome_mes from calendario order by 1'); > > Isso existe? > > > Alexander,
Veja se isso ajuda: http://www.postgresonline.com/journal/archives/14-CrossTab-Queries-in-PostgreSQL-using-tablefunc-contrib.html Foi o meu primeiro (e único) contato com essa contrib... usei ela para listar os salários pagos por mês de cada funcionário na folha de pagamento... a query que utilizei é a que segue: SELECT relatorio.* FROM crosstab($$ select cast(to_char(r14_regist, '000000') || '-' || z01_nome as text) as row_name, cast(to_char(date '2010-01-01' + ((r14_mesusu-1)||' month')::interval, 'mon') as text) as bucket, cast(round(sum(r14_valor),2) as integer) as bucketvalue from gerfsal inner join rhpessoal on rh01_regist = r14_regist inner join cgm on z01_numcgm = rh01_numcgm where r14_anousu = 2010 and r14_pd = 1 group by r14_anousu, r14_mesusu, r14_regist, z01_nome order by 1, r14_mesusu $$, $$SELECT to_char(date '2010-01-01' + (n || ' month')::interval, 'mon') As short_mname FROM generate_series(0,11) n$$) AS relatorio(item_name text, jan integer, feb integer, mar integer, apr integer, may integer, jun integer, jul integer, aug integer, sep integer, oct integer, nov integer, dec integer); Essa query vai listar a Matricula e Nome do Funcionário e o valor bruto do salário mês a mês do ano de 2010. Não sei se ajudei muito, mas aquele artigo me ajudou bastante a construir essa query. -- Fabrízio de Royes Mello >> Blog sobre TI: http://fabriziomello.blogspot.com >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
