Bosco Postado Junho 1, 2014 Denunciar Share Postado Junho 1, 2014 Olá amigo Denis Courcy Algum dias atras estava com problema em uma consulta sql e tu me ajudou com o codigo abaixo. mas me deparei com um erro. Quando a tabela de debito esta vazia ele não me traz o valor do saldo e nem a soma de credito. SELECT cli.Chave, cred.total_credito, debt.total_debito, (cred.total_credito - debt.total_debito) AS saldo FROM cli INNER JOIN (SELECT id_remetente, sum(Credito) AS total_credito FROM clicredito GROUP BY id_remetente) cred ON cred.id_remetente = cli.Chave INNER JOIN(SELECT id_remetente, sum(Debito) AS total_debito FROM clidebito GROUP BY id_remetente) debt ON debt.id_remetente = cli.Chave WHERE cli.Chave = 37813 pode me ajudar novamente com um luz. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 1, 2014 Denunciar Share Postado Junho 1, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> Olá amigo Denis Courcy Algum dias atras estava com problema em uma consulta sql e tu me ajudou com o codigo abaixo. mas me deparei com um erro. Quando a tabela de debito esta vazia ele não me traz o valor do saldo e nem a soma de credito. SELECT cli.Chave, cred.total_credito, debt.total_debito, (cred.total_credito - debt.total_debito) AS saldo FROM cli INNER JOIN (SELECT id_remetente, sum(Credito) AS total_credito FROM clicredito GROUP BY id_remetente) cred ON cred.id_remetente = cli.Chave INNER JOIN(SELECT id_remetente, sum(Debito) AS total_debito FROM clidebito GROUP BY id_remetente) debt ON debt.id_remetente = cli.Chave WHERE cli.Chave = 37813 pode me ajudar novamente com um luz. Isto acontece porque a intercessão dos conjuntos cred.id_remetente = cli.Chave retorna um conjunto vazio. A solução é substituir o INNER JOIN pelo LEFT JOIN e colocar um IF onde aparecerem os valores, para testar se nulos sustituir por zero. Corrigindo o código, fica assim: SELECT cli.Chave, IF(cred.total_credito IS NULL, 0, cred.total_credito) AS total_credito, IF(debt.total_debito IS NULL, 0, debt.total_debito) AS total_debito, (IF(cred.total_credito IS NULL, 0, cred.total_credito) - IF(debt.total_debito IS NULL, 0, debt.total_debito)) AS saldo FROM cli LEFT JOIN (SELECT id_remetente, sum(Credito) AS total_credito FROM clicredito GROUP BY id_remetente) cred ON cred.id_remetente = cli.Chave LEFT JOIN(SELECT id_remetente, sum(Debito) AS total_debito FROM clidebito GROUP BY id_remetente) debt ON debt.id_remetente = cli.Chave WHERE cli.Chave = 37813 Link para o comentário Compartilhar em outros sites More sharing options...
0 Bosco Postado Junho 1, 2014 Autor Denunciar Share Postado Junho 1, 2014 Olá Denis Courcy Mais uma vez obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bosco
Olá amigo Denis Courcy
Algum dias atras estava com problema em uma consulta sql e tu me ajudou com o codigo abaixo.
mas me deparei com um erro. Quando a tabela de debito esta vazia ele não me traz o valor do saldo e nem a soma de credito.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados