-
Total de itens
3 -
Registro em
-
Última visita
Posts postados por anderson810311
-
-
Em 07/11/2016 at 19:04, Denis Courcy disse:
Conforme mostra a imagem que você postou no outro site e que tomei a liberdade de postar aqui,
Isto acontece por causa do join que você está impondo em seu select .
Segundo a estrutura de suas tabelas, cada elemento de rec_lider apontará para vários elementos de rec_fiscal que correspondam a igualdade rec_lider.cd = rec_fiscal.cd.
Exemplo: Tomando cd = Osasco, O primeiro registro de rec_lider(Osasco, 20) apontará para os seguintes registros em rec_fiscal (Osasco 20),((Osasco 30), Osasco, 40) e (Osasco, 20); O registro (Osasco, 30) em rec_fiscal apontará para os mesmos registros em rec_fiscal e etc.
A solução é somar rec_lider antes de conectar o join. Somar os dados de rec_fiscal, também, antes de conectar o join. E realizar um join para exibir os totais.
Por que fazer assim?
Porque assim, assim rec_fiscal.cd terá somente um registro por cd, assim como rec_lider.cd
Então teremos:
SELECT Unidade, `Total Recebido`, `Total Auditado`, `Total Devolvido` FROM (SELECT rec_lider.cd AS Unidade, SUM(rec_lider.total_recebido) AS `Total Recebido`, FROM rec_lider GROUP BY rec_lider.cd ) rl INNER JOIN (SELECT rec_fiscal.cd AS Unidade, SUM(rec_fiscal.total_recebimento) AS `Total Auditado`, SUM(rec_fiscal.total_devolvido) AS `Total Devolvido` FROM rec_fiscal GROUP BY rec_fiscal.cd ) rf ON rf.Unidade = rc.Unidade GROUP BY rl.Unidade
Denis, boa tarde.
Desculpe dar o retorno agora, consegui entrar agora aqui no fórum, porém fiz oque você me pediu e não consegui, coloquei direto no phpmyadmin porém não deu certo.
Pode me ajudar e me mostrar aonde errei?
coloquei esta ajuda também em outro fórum, e coloquei os bds para testes, vou colocar aqui também.
http://www.logsystem.com.br/forum/rec_fiscal.sql
http://www.logsystem.com.br/forum/rec_lider.sql
pode me ajudar mais uma vez por favor.
Obrigado.
-
Pessoal,
Tenho duas tabelas:
1º rec_lider
2º rec_fiscalambas com dados variados dentro das tabelas, porém preciso buscar três informações entre as duas, vou ver se consigo explicar aqui embaixo, tentei de tudo e não consegui, preciso muito de ajuda nessa soma.
Vamos lá, vou explicar aqui embaixo:
1º Tabela (rec_lider), tenho dentro dela o cd, total_recebido
2º Tabela (rec_fiscal), tenho dentro dela o cd, total_recebimento e total_devolvidoEstou usando o seguinte critério no MySql:
SELECT
rec_lider.cd AS Unidade,
SUM(rec_lider.total_recebido) AS `Total Recebido`,
SUM(rec_fiscal.total_recebimento) AS `Total Auditado`,
SUM(rec_fiscal.total_devolvido) AS `Total Devolvido`
FROM rec_lider
INNER JOIN rec_fiscal ON rec_lider.cd = rec_fiscal.cd
GROUP BY rec_lider.cdAs informações estão vindo, porém esta multiplicando e ficando muito maior que o correto, tipo vou no banco conto a quantidade por exemplo de "total_recebido = 10" so que neste critério acima ele me retorno tipo "total_recebido = 110" por exemplo", já tentei de tudo não consegui um jeito de fazer correto, gostaria de pedir uma ajuda aqui para este meu problema que acredito ser bem simples, más não estou conseguindo de jeito nenhum.
Postei esse mesma dificuldade em outro fórum "Ao Calcular Valores ou Quantidade o banco multiplica pela quantidade de registro - Ajuda" porém uma pessoa tentou me ajudar más não consegui fazer oque ele pediu dar certo, segui os passos dele más não retornou correto a tabela.
Alguém aqui pode me ajudar, por favor?
Obrigado.
(Resolvido) Inner Join somando errado com 2 tabelas ( Esta multiplicando )
em MySQL
Postado
Denis, Muitooooo Obrigado!.
Estava já umas 3 a 4 semanas nisso e nada de concluir por esta dificuldade, fico hiper agradecido com essa sua contribuição e solução, me ajudou e muito!
Aqui deu tudo certinho, agora consegui, :)
Parabéns pelo seu empenho em ajudar pessoas como eu que não entende muito, rsrs
Valeu mesmo.