Tenta usar >= ou <= e quanto as datas..
o teu sql é só exemplo né??
por que vc tá pesquisando do dia 19/07/06

Adriano Santos (Yahoo) escreveu:
>
> Galera,
>
> Tô com uma dúvida básica aqui: preciso fazer um case when numa data no
> Firebird 1.5 ou superior, não sei nem se funciona.
> Na verdade não dá erro, mas não retorna corretamente os dados. Pra
> resumir preciso copiar parte da string de um campo se a data for
> inferior a 01/07/2007. Por exemplo:
>
> DATA..............OPERADOR
> 01/01/2007.......ODAIR
> 12/10/2007.......ODAIR
> 13/08/2007.......DG-ADRIANO
>
> Se for menor que 01/07/2007 copia do inicio até o fim, retornando ODAIR.
> Se for superior a esta data copia do caracter depois do traço pra frente
> ficando ADRIANO.
>
> O resultado tem que ser este.
> DATA..............OPERADOR
> 01/01/2007.......ODAIR
> 12/10/2007.......ODAIR
> 13/08/2007.......ADRIANO
>
> Fiz a select abaixo, não dá erro, mas tb não respeita o CASE WHEN.
> Vlw
>
> SELECT
> LP.*, FL.NOME AS NM_FILIAL, HS.HISTORICO AS NM_OCORRENCIA,
> (CASE
> WHEN LP.DT_LANCAMENTO < '07-19-2006' THEN SUBSTR(LP.OPERADOR, 1, 15)
> WHEN LP.DT_LANCAMENTO > '07-19-2006' THEN SUBSTR(LP.OPERADOR, 4, 15)
> END
> ) AS NM_OPERADOR
> FROM
> STWCOLTLANP LP
> LEFT JOIN STWOPETFIL FL
> ON (LP.FIL_LANCAMENTO = FL.FILIAL)
> LEFT JOIN STWCOLTHIS HS
> ON (LP.OCORRENCIA = HS.CODIGO)
>
> -- 
> Adriano Santos
> ----------------------------------------------------------
> Editor Técnico Revista ClubeDelphi
> www.delphitodelphi.blogspot.com
> www.devmedia.com.br
> www.devmedia.com.br/clubedelphi/pagina.asp
>
>  

Responder a