sql parou de funcionar

31/05/2017

0

bom dia!
Gostaria da ajuda de vcs.
Tenho um sql da seguinte forma para trazer cheques devolvidos que não foram recebidos ainda:

select cd.*, ce.numero_serial, ce.cod_cliente, ce.tipo, ce.numero_cheque, ce.doc_cliente, emp.princ_razaosocial,
ce.cliente, ce.data_emissao, ce.data_compensacao, ce.valor, ce.observacao from cheque_devolucao cd
inner join cheque_entrada ce on ce.cod_cheque = cd.cod_cheque
inner join cliente cl on cl.cod_cliente = ce.cod_cliente
left join empresa emp on emp.cod_empresa = ce.cod_empresa
where cd.cod_cheque not in (select cod_cheque_entrada from cheque_recebimento_devolucao)


até ontem estava funcionando. e há cheques devolvidos sem recebimento no banco de dados. Utilizo o firebird 2.5.
O que pode estar acontecendo?
Cristiane

Cristiane

Responder

Posts

31/05/2017

Daniel Araújo

Bom dia Cristiane!

Quando você diz que não está funcionando você quer dizer que não está trazendo resultados, não é?

Se você tem certeza que era pra trazer resultados, o ideal é que você pegue um desses registros que era pra sair e tente analisar o porque dele não estar saindo. No seu select existem dois inners e uma condição. Tente assim: Substitua os dois inners por left join e comente a linha da condição. Execute o select e veja se o seu registro saiu. Se saiu, vá desfazendo as suas alterações uma a uma e testando a cada alteração, até que o registro deixe de sair. Quando ele não sair, você vai descobrir qual a causa disso. Deu pra entender?

Se a resposta for útil não esqueça de dar um like!
Responder

31/05/2017

Cristiane

então. fiz os testes aqui e o problema esta na condição. quando a tiro não traz resultados
Responder

31/05/2017

Daniel Araújo

Cristiane, esse select (select cod_cheque_entrada from cheque_recebimento_devolucao) traz os cheques devolvidos e recebidos, não é?

Se o select principal traz todos os cheques que não estejam no resultado do select anterior, é porque o cheque em questão foi recebido. Então o seu select estaria correto. Vê com calma se esses registros eram mesmo pra sair. Pega o código do cheque e verifica se ela não está na tabela de recebimentos.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar