[firebase-br] RES: CASE INVÁLIDO

Reinaldo diasmartins em gmail.com
Sex Jan 21 09:05:39 -03 2011


Nos testes que fiz aqui tanto a Sintaxe de colocar:

      CASE  :p_TipoProj
         WHEN 'UD' THEN COALESCE(DOA.DOAVALULTDOA, 0.00)
         WHEN 'UA' THEN COALESCE(DOA.DOAVALULTACA, 0.00)
         ...
         END AS ULT_VALOR

Como colocar
      CASE
         WHEN :p_TipoProj = 'UD' THEN COALESCE(DOA.DOAVALULTDOA, 0.00)
         WHEN :p_TipoProj = 'UA' THEN COALESCE(DOA.DOAVALULTACA, 0.00)
         ...
         END AS ULT_VALOR

Funcionaram da mesma maneira e trouxeram o mesmo resultado, o problema é 
quando eu adiciono Resultado ULT_VALOR na cláusula WHERE. O Campo 
ULT_VALOR não é reconhecido como um campo válido.

Estou tentando fazer com Subselect.  Colocar o case no where eu nunca fiz.


Att.

Reinaldo



Em 20/01/2011 14:21, 
renato-VlHyvqECRQzGL5emXfDNdA/jyz+guNFm em public.gmane.org escreveu:
> Olá!
> O correto para esse caso é assim:
>
> SELECT
>      DOA.DOACOD, DOA.DOANOM, DOA.DOASTA, DOA.DOAFIL, DOA.CATCOD, DOA.UNICOD,
> CID.CIDCOD, DOA.DOAPES,
>      CASE  :p_TipoProj
>      WHEN 'UD' THEN COALESCE(DOA.DOAVALULTDOA, 0.00)
>      WHEN 'UA' THEN COALESCE(DOA.DOAVALULTACA, 0.00)
>      WHEN 'MD' THEN COALESCE(DOA.DOAVALMEDDOA, 0.00)
>      WHEN 'MA' THEN COALESCE(DOA.DOAVALMEDACA, 0.00)
>      ELSE 0.00
>      END AS ULT_VALOR
> FROM ...
>
> Espero ter ajudado.
>
> Att.
>
> Renato Bermudo
>
>
> -----Mensagem original-----
> De: lista-bounces-JZX6CTs6PlE39yzSjRtAkw em public.gmane.org [mailto:lista-bounces-JZX6CTs6PlE39yzSjRtAkw em public.gmane.org] Em
> nome de Reinaldo
> Enviada em: quinta-feira, 20 de janeiro de 2011 10:15
> Para: lista-JZX6CTs6PlE39yzSjRtAkw em public.gmane.org
> Assunto: [firebase-br] CASE INVÁLIDO
>
> Olá Pessoal estou com um problema, que está ocorrendo um erro na execucao do
> select abaixo.
>
> Eu estou criando um campo através do case, e preciso utiliza-lo no WHERE
>
> Alguém tem alguma dica de como resolver isso?
>
> Att.
>
> Reinaldo
>
>
> SELECT
>      DOA.DOACOD, DOA.DOANOM, DOA.DOASTA, DOA.DOAFIL, DOA.CATCOD, DOA.UNICOD,
> CID.CIDCOD, DOA.DOAPES,
>      CASE
>      WHEN :p_TipoProj = 'UD' THEN COALESCE(DOA.DOAVALULTDOA, 0.00)
>      WHEN :p_TipoProj = 'UA' THEN COALESCE(DOA.DOAVALULTACA, 0.00)
>      WHEN :p_TipoProj = 'MD' THEN COALESCE(DOA.DOAVALMEDDOA, 0.00)
>      WHEN :p_TipoProj = 'MA' THEN COALESCE(DOA.DOAVALMEDACA, 0.00)
>      ELSE 0.00
>      END AS ULT_VALOR
> FROM
>      TAB_DOADORES DOA
>      LEFT JOIN TAB_LOGRADOUROS LOGR ON LOGR.LOGRCOD = DOA.DOALOGRCOD1
>      LEFT JOIN TAB_BAIRROS     BAI  ON BAI.BAICOD   = LOGR.BAICOD
>      LEFT JOIN TAB_CIDADES     CID  ON CID.CIDCOD   = BAI.CIDCOD
> WHERE
>      DOA.DOASTA =  'DES'        AND
>      DOA.DOAFIL =  'RC'         AND
>      DOA.UNICOD =  :p_UNICOD    AND
>      CID.CIDCOD =  :p_CIDCOD    AND
>      DOA.DOAPES =  :p_DOAPES    AND
> ---Linha com erro
> -----------------------------------------------------------
>      ULT_VALOR  BETWEEN :p_ValorInicial and :p_ValorFinal
> -----------------------------------------------------------
> ORDER BY
>      DOA.DOADATRCA
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
> saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista