Em 28/10/13, Danilo Silva<danilo.dsg.go...@gmail.com> escreveu:
> 2013/10/28 Osvaldo Kussama <osvaldo.kuss...@gmail.com>
>
>> 2013/10/28, Danilo Silva <danilo.dsg.go...@gmail.com>:
>> > Pessoal,
>> >
>> > Tendo a seguinte estrutura:
>> >
>> > CREATE TABLE leitura (
>> > codmovimento integer,
>> > dtmovimento date,
>> > codbarras text
>> > );
>> >
>> > INSERT INTO leitura VALUES
>> > (1,'2013-01-04', 'ABCD'),
>> > (1,'2013-01-04', 'ABCDEF'),
>> > (2,'2013-01-05', 'ABCD'),
>> > (1,'2013-01-03', 'XYZ'),
>> > (1,'2013-01-07', 'FULANO'),
>> > (2,'2013-01-07', 'XYZ');
>> >
>> > Preciso fazer um select onde traga, uma coluna com o codmovimento e
>> > cada
>> > dtmovimento sendo uma coluna com a contagem total de cada movimento,
>> > exemplo:
>> >
>> > codmovimento | 2013-01-03 | 2013-01-04 | 2013-01-05 | 2013-01-07
>> >
>> ----------------------+-----------------+----------------+-----------------+----------------
>> >                    1 |                1 |               2 |
>>   0
>> > |               1
>> >                    2 |                0 |               0 |
>>   1
>> > |               1
>> > (2 rows)
>> >
>>
>>
>> Pesquise por crosstab no módulo adicional tablefunc:
>> http://www.postgresql.org/docs/current/interactive/tablefunc.html
>>
>> Osvaldo
>>
>
> Aparentemente crosstab resolveria, mas eu teria que mencionar as colunas,
> e no meu caso, não daria para saber quais são, já que as colunas seriam as
> datas... a não ser que eu crie uma função para resolver o meu problema...
>


Creio que a variante de 2 parâmetros resolveria. (F.36.1.4.
crosstab(text, text))
O segundo parâmetro seria:
SELECT DISTINSCT dtmovimento FROM leitura ORDER BY 1;
Você teria a relação de todas as datas existentes.

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a