poce1don Postado Maio 21, 2015 Denunciar Share Postado Maio 21, 2015 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bonamim.jb Postado Junho 12, 2015 Denunciar Share Postado Junho 12, 2015 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
poce1don
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.