Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações a todos,
Bem pessoal esbarrei com um problema estranho e não estou conseguindo resolver, é o seguinte:
A query abaixo esta ignorando a segunda parte da condição (depois do and). Fazendo uns testes malucos notei que se substituo o inner join na primeira parte da condição por left join ela passa a funcionar perfeitamente. Alguém saberia dizer porque isso acontece, estou usando o Firebird 2.1.3.18185.
O objetivo da query é filtrar todos os alunos em dia com a mensalidade em uma determinada data (09/11/2010) que não tem acessos desde 17/08/2010.
Select * from ALUNOS Alu where
(Alu.ID in (Select CxMens.ID_ALUNO from CAIXA_MENSALIDADES CxMens
inner join CAIXA Cx on (Cx.CODIGO = CxMens.COD_CAIXA)
where Cx.ESTORNO = "N" and "09/11/2010" between CxMens.PERIODO_VIGENCIA_INI and CxMens.PERIODO_VIGENCIA_FIN))
and
(Alu.ID not in (Select Aces.ID_ALUNO from ACESSOS Aces where Aces.DATA >= "08/17/2010"))
Carregando comentários...