----- Original Message ----- From: Adriano Santos (Yahoo) To: Delphi-br Sent: Wednesday, November 28, 2007 9:11 AM Subject: [delphi-br] Off - Case When com Datas no FB
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 [As partes desta mensagem que não continham texto foram removidas]