Osvaldo Kussama
>>2012/8/30, Marcelo Silva <[email protected]>:
>> Tem como criar uma cross tables simples no postgres?
>>
>> Ou seja, trazer o result de um select em colunas
>>
>> Select descricao from Tabela
>>
>> Result
>>   descricao1
>>   descricao2
>>   descricao3
>>   etc
>>
>>
>> Mas mostrar o Result assim:
>>
>> descricao1, descricao2, descricao3, etc
>>

> Veja crosstab no módulo tablefunc:
> http://www.postgresql.org/docs/current/interactive/tablefunc.html

Tempos atrás eu tentei usar essa função [I] que vem no tablefunc, todavia me
esbarrei no problema abaixo, será que alguém consegue me ajudar?

Versão : PostgreSQL 9.0.5 on x86_64-pc-linux-gnu, compiled by GCC
gcc-4.4.real (Ubuntu 4.4.3-4ubuntu5) 4.4.3, 64-bit


/* Código */
create table teste(nome varchar(10), data date, qtde int);
insert into teste values ('RUBENS',CURRENT_DATE,1);
insert into teste values ('RUBENS',CURRENT_DATE+1,2);
insert into teste values ('RUBENS',CURRENT_DATE-1,3);
insert into teste values ('LEO',CURRENT_DATE,1);
insert into teste values ('LEO',CURRENT_DATE+1,2);
insert into teste values ('LEO',CURRENT_DATE-1,3);

select *
  from crosstab('select nome,data,qtde from teste order by nome') 
      as buteco(nome varchar(10),data date,qtde integer)

Erro : 
Function Scan on crosstab ct  (cost=0.00..10.00 rows=1000 width=46)
LOG:  duração: 0.054 ms  comando: SET DateStyle TO 'ISO'
ERRO:  return and sql tuple descriptions are incompatible

[I] http://www.postgresql.org/docs/9.0/interactive/tablefunc.html

Obrigado,

Rubens J Rodrigues

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a