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 > >