Boa noite, Em 5 de junho de 2016 20:20, Jean Alysson <[email protected]> escreveu:
> Boa noite, > > preciso de ajuda no seguinte cenario: > > tenho uma tabela com > idpedido - idproduto - situacao - quantidade > 1 1 F 2 > 1 1 C 2 > > 2 1 F 3 > > 3 1 F 5 > 3 1 C 5 > 3 1 E 5 > > onde F=fechado C=cancelado E=excluido > > preciso do total das quantidades vendidas, descontando o que foi cancelado > ou excluido, mas sendo cancelado e excluido, desconta 2 vezes e fica > errado, uso o seguinte select: > > select sum( > case when situacao = 'F' then quantidade > else > quantidade * -1 > end) as total > from tabela > > funciona quando o pedido é fechado e cancelado ou fechado e excluido, mas > no caso do pedido 3 > ele é fechado, cancelado e excluido, ficando com valor negativo, como > posso resolver ? > > Obrigado > Jean Alysson > > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > Se fizer assim não funciona: select sum(quantidade) from tabela where situacao='F' and not exists(select 1 from tabela t2 where t2.idpedido=tabela.idpedido and t2.idproduto=tabela.idproduto and t2.situacao in ('C', 'E')) Uma outra ideia seria somar as quantidades de acordo com a situação e utilizar como um subselect. -- Marcos Thomaz da Silva Analista de Tecnologia da Informação
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
