Em 21 de maio de 2014 16:23, Pedro B. Alves <[email protected]>escreveu:
> > > > Em 21 de maio de 2014 11:11, veronica almeida < > [email protected]> escreveu: > > Oi, Pedro! >> >> Se tiver uma tabela com datas, uma dimensão de tempo (com data, ano, >> mes), por exemplo, pode fazer algo assim: >> >> SELECT dim_tempo.mes, dim_tempo.ano, COUNT(pedidos.id) >> FROM dim_tempo >> LEFT JOIN pedidos ON dim_tempo.data = pedidos.datapedido >> GROUP BY dim_tempo.mes, dim_tempo.ano >> >> >> > O problema não é a relação e sim os meses que não tem pedido. > > Por exemplo: > > quero os pedidos de Janeiro a Maio. > > Os meses que não tiverem pedidos, não vai trazer na relação, por isso > preciso algo que cria esses meses. > A tabela dim_tempo irá conter esses meses, seria uma tabela completa (de tal ano até tal ano dependendo da necessidade), sem "buracos" nas datas. Geralmente é utilizada em DW como a dimensão de tempo. O que o Matheus mandou irá retornar linhas "duplicadas" e não entendi de onde vem o "dt" Mais ou menos isso, quando digo linhas "duplicadas": SELECT 05 as mes, 2014 as ano, 10 as qtd UNION ALL SELECT 05, 2014, 0 5;2014;10 5;2014;0 Como o Renato mandou elimina a "duplicidade": SELECT mes, ano, SUM (qtd) as qtd FROM ( SELECT 05 as mes, 2014 as ano, 10 as qtd UNION ALL SELECT 05, 2014, 0) as pedidos GROUP BY mes, ano 5;2014;10 Não conhecia o generate_series... Valeu Matheus pela dica!! (-:
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
