> Matheus de Oliveira
> 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 > Qual o resultado que você está esperando? Não dá pra adivinhar pelo que escreveu, mas eu diria o seguinte: > postgres=# select * > from crosstab('select nome,data,qtde from teste order by 1,2') > as buteco(nome varchar(10),hoje int,amanha int,depois_amanha int); > nome | hoje | amanha | depois_amanha > --------+------+--------+--------------- > LEO | 3 | 1 | 2 > RUBENS | 3 | 1 | 2 > (2 rows) Obrigado pela resposta. Minha idéia de resultado seria : NOME | '30/08/2012' | '31/08/2012' | '01/09/2012' LEO | 3 | 1 | 2 RUBENS | 3 | 1 | 2 Rubens
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral