[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