2012/8/31 Matheus de Oliveira <[email protected]>

>
> 2012/8/31 Rubens José Rodrigues <
> [email protected]>
>
>> 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)
>
>
Ou então, fazendo o cross-tab pelo nome:

postgres=# select *
  from crosstab('select data,nome,qtde from teste order by 1,2')
      as buteco(data date,leo int, rubens int);

    data    | leo | rubens
------------+-----+--------
 2012-08-30 |   3 |      3
 2012-08-31 |   1 |      1
 2012-09-01 |   2 |      2
(3 rows)


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

Responder a