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

Responder a