[firebase-br] Erro com BETWEEN e campo calculado
Claudio O2
claudio em o2tecnologia.com.br
Qui Set 6 17:42:20 -03 2007
Vamos la Daniel, eu uso dialeto 1 entao a funcao que eu uso
current_timestamp.
Fiz uma select parecida com a sua e ficou assim
SELECT PARC.cgc FROM STWOPETCLI CLI
INNER join STWOPETPARC PARC ON ( CLI.cgc = PARC.cgc )
group by parc.cgc
having ( max(cli.dt_alteracao) between ( current_timestamp - 30 ) and
current_timestamp )
nesse caso sao duas tabelas,a cli que e meu cadastro de clientes e tem o
campo data dt_alteracao e a parc que e uma tabela relacionada com ela.
Usando o having com o group by resolveu minha select, no seu caso se
voce vai dar select * vai ter que por todos os campos no group by.
[]´s
Claudio
Daniel / Tecnobyte escreveu:
> 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
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
--
Mais detalhes sobre a lista de discussão lista