Jump to content
Fórum Script Brasil
  • 0

JOIN em 3 tabelas retornando valor errado


poce1don
 Share

Question

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
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Você está usando a seguinte ligação:
left join tblvendidos as vi on vi.codVenda = ve.codCadastro
left join tblpagamento as pg on pg.codVenda = ve.codCadastro
Porém, acredito que deveria ser assim:
left join tblvendidos as vi on vi.codCadastro = ve.codCadastro
left join tblpagamento as pg on pg.codCadastro = ve.codCadastro
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...