Pessoal, boa tarde.

Desculpe pelo título mas não sabia como descrever o problema em um título.

Seguinte, tenho as seguintes tabelas.

tb_vendas
filial data       ecf coo subtotal desconto
1      27/05/2014 1   1   10       0

tb_vendas_produtos

filial data       ecf coo produto subtotal desconto
1      27/05/2014 1   1   1       5       0
1      27/05/2014 1   1   2       5       0

Preciso fazer uma consulta cruzando as duas tabelas para me trazer o total do cabeçalho e dos itens, para saber qual cabeçalho está com valor diferente da soma dos itens.

select
  a.filial,
  a.data,
  a.ecf,
  sum(a.subtotal - a.desconto) as valor_venda,
  sum(b.subtotal - b.desconto) as valor_venda_produtos
from tb_vendas a
join tb_vendas_produtos b on
  a.filial = b.filial and
  a.data = b.data and
  a.ecf = b.ecf and
  a.coo = b.coo
group by
  a.filial,
  a.data,
  a.ecf

Nessa consulta teria o seguinte resultado:
filial data       ecf valor_venda valor_venda_produtos
1      27/05/2014 1   20          10

Eu precisaria trazer apenas o total por cupom, da seguinte forma:
filial data       ecf valor_venda valor_venda_produtos
1      27/05/2014 1   10          10

Está duplicando pois estou cruzando com a tabela de produtos.
Como eu posso obter o resultado desejado sem ter que utilizar subquery?

Observação: preciso fazer isso em SQL Server, infelizmente, mas acredito que aprendendo a fazer no PostgreSQL eu saiba o caminho das pedras para fazer no SQL Server.

Obrigado!

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a