> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral