2014-05-27 14:24 GMT-03:00 Thiago <[email protected]>:
> 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.
>
Nesse caso basta não agregar as colunas de interesse da tabela de vendas:
SELECT
a.filial,
a.data,
a.ecf,
*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,
*a.subtotal,*
* a.desconto*;
Em versões mais recentes (se não me engano 9.1+), você nem precisa
adicionar todas essas colunas na cláusula GROUP BY, basta adicionar a chave
primária da tabela tb_vendas (chuto eu que sejam (filial, data, ecf, coo)).
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral