Em 08/11/16, Alan Tavares<[email protected]> escreveu: > Pessoal > > Estou com uma dúvida o caso é o seguinte > Tenho uma tabela de vendas e tenho que fazer um relatório que o gerente > quer saber a quantidade vendida em 3 períodos 7, 15 e 30 dias de todos os > produtos na mesma tela alem de poder escolher um pediodo customizado. > A tabela de pedidos tem em torno de 300 mil registros e mensalmente algo em > torno de 20 mil. > Já consegui convencer de que não daria pra fazer em tempo real e limitar o > periodo para no maximo 90 dias. > A solução q fiz foi a seguinte > Criei uma view materializada com os dados das vendas dos ultimos 90 dias, a > partir dessa view criei mais 3 views materializadas para cada um dos > periodos 7, 15, 30 > onde faço o sum dos produtos e para exibição dou um join nessas 3 views > materializadas e em uma outra view do produto com a quantidade em estoque. > Segue abaixo. > > select a.produto, > a.estoque, > b.qnt_7, > c.qnt_15, > d.qnt_30 > from vendas.vw_produtos a > inner join vendas.vm_vendas_7 b on a.id = b.id > inner join vendas.vm_vendas_15 c on a.id = c.id > inner join vendas.vm_vendas_30 d on a.id = d.id > > Existe alguma solução que de para fazer os sum de periodos diferentes na > mesma consulta. > > Desde já obrigado. > > Alan Costa >
Utilize o CASE. Para o dado período some a quantidade, caso contrário 0. Algo do tipo: ... SUM( CASE WHEN (sua_data < CURRENT_DATE-INTERVAL '7 DAYS') THEN quantidade ELSE 0 END) ... Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
