[firebase-br] Erro com BETWEEN e campo calculado

Daniel / Tecnobyte temp2 em tecnobyte.com.br
Qui Set 6 17:14:13 -03 2007


Ao rodar o comando:

SELECT * FROM Pessoa
WHERE
  (SELECT MAX(Licenca.DataVencto) FROM Licenca
   WHERE Licenca.Pessoa_Id = Pessoa.Id)
  BETWEEN CURRENT_DATE - 30 AND CURRENT_DATE

o Firebird 1.5 retorna o erro abaixo:

Unsupported field type specified in BETWEEN predicate.

E substituindo o SELECT por este abaixo (equivalente) funciona normalmente:

SELECT * FROM Pessoa
WHERE
  (SELECT MAX(Licenca.DataVencto) FROM Licenca
   WHERE Licenca.Pessoa_Id = Pessoa.Id) >= CURRENT_DATE - 30
   AND
  (SELECT MAX(Licenca.DataVencto) FROM Licenca
   WHERE Licenca.Pessoa_Id = Pessoa.Id) <= CURRENT_DATE

Alguém sabe uma explicação para este problema?

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br



Mais detalhes sobre a lista de discussão lista