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