Acabo de chegar ao fórum, e peço sua ajuda. :)
Tenho 3 tabelas: tblVenda, tblVendido, tblPagamento
tblVenda: codCadastro, codCliente
tblVendido: codCadastro, codVenda, codProduto, Quantidade, Valor
tblPagamento: codCadastro, codVenda, Valor
basicamente seria assim:
tblVenda:
codCadastro | codCliente
1 4
2 4
3 1
4 7
5 2
tblVendido:
codCadastro | codVenda | codProduto | Quantidade | Valor
1 1 8 2 5,00
2 1 5 7 14,00
3 1 2 1 3,00
4 2 8 3 9,00
5 2 3 1 3,00
tblPagamento:
codCadastro | codVenda | Valor
1 2 12,00
2 1 22,00
O que faço para minha query consulte as 3 tabelas para retornar o
valor total que o cliente comprou e o valor total de pagamentos
que ele fez com base apenas no código de codCadastro do cliente?
Já tentei com diversos left join ou inner join mas nada funcionou
o valor total vendido eu consigo, mas o valor total do pagamento
referente à venda, está sendo multiplicado conforme a quantidade de
produtos vendidos.
Com essa query:
select sum(vi.valor * quantidade), sum(pg.valor)
from ((tblvendas as ve
left join tblvendidos as vi on vi.codVenda = ve.codCadastro)
left join tblpagamento as pg on pg.codVenda = ve.codCadastro)
where ve.codCliente = 4, conexao, lock
o resultado será:
valor vendido: 34,00 (correto)
valor pagamento: 90,00 = (12,00 x 2) + (22,00 x 3)
o valor de pagamento ao invés de vir os mesmos 34,00 de vendido, aparece 90,00.
Sabe me explicar o que está acontecendo? :o
Obrigado! :D