Usuário com melhor resposta
Ajuda com Join

Pergunta
-
Galera, estou com uma dificuldade... estou com um relatório que não retorna os dados corretos, devido a falta de informação por causa de um left join.
São quatro campos na tab Cad_cheque...
SELECT distinct * FROM ASO_PROC_ENVIO_DOCTO AS A
LEFT JOIN CAD_CHEQUE_AGRUPADO AS B
ON A.num_seq_envio_documento = B.num_seq_envio_docto
WHERE A.COD_USUARIO_INCLUSAO = xx AND A.NUM_SEQ_PROCESSO_VENDA = xxEu consigo listar todos os parâmetros, exceto os:
cod_banco cod_banco_depositar num_cheque num_agencia
NULL NULL NULL NULLE já confirmei na outra tabela que estes campos possuem valor. E o código é muito antigo, tinha que encontrar o erro (e encontrei) agora preciso ajustá-lo... Alguém já viu isso?
Respostas
-
Pessoal, numa conversa com a equipe decidimos não modificar este detalhe, então agradeço à todos pela atenção e força.
- Sugerido como Resposta Ricardo Barbosa Cortes sexta-feira, 26 de setembro de 2014 18:30
- Marcado como Resposta Ricardo Barbosa Cortes sexta-feira, 26 de setembro de 2014 18:30
Todas as Respostas
-
-
-
-
Na verdade isto é parte de uma procedure imensa (e bem antiga) de preferência não queria mudar mt ela, pois a estrutura do sistema todo é instável... Existe alguma maneira de remediar este erro?
Se você trocar o "left join" por "inner join" irá mostrar somente os registros que tiverem nas duas tabelas, mas tem que saber se é isso que você quer...
Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote
-
-
Ares,
Qual o resultado que você quer ?
Você tem registros na tabela A que não tem na tabela B, se usar o "left join" ira mostrar todos os registros da tabela A e os registros da tabela B que não existem na tabela A irão aparecer como NULL.
Se user o "inner join" ira mostrar somente os registros que estão nas duas tabelas.
Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote
-
-
Ares,
Tenta formatar os campos na cláusula where conforme os comandos a seguir.
Se for string (varchar) tente:
rtrim(ltrim(num_cheque num_agencia)) = '121'
se for numérico, tente:
cast(num_cheque num_agencia as int) = 121
- Sugerido como Resposta paulohpatricio quinta-feira, 25 de setembro de 2014 22:30
-
-
Pessoal, numa conversa com a equipe decidimos não modificar este detalhe, então agradeço à todos pela atenção e força.
- Sugerido como Resposta Ricardo Barbosa Cortes sexta-feira, 26 de setembro de 2014 18:30
- Marcado como Resposta Ricardo Barbosa Cortes sexta-feira, 26 de setembro de 2014 18:30