sql parou de funcionar

Banco de Dados

Firebird

31/05/2017

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

Curtidas 0

Respostas

Daniel Araújo

Daniel Araújo

31/05/2017

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!
GOSTEI 0
Cristiane

Cristiane

31/05/2017

então. fiz os testes aqui e o problema esta na condição. quando a tiro não traz resultados
GOSTEI 0
Daniel Araújo

Daniel Araújo

31/05/2017

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.
GOSTEI 0
POSTAR