[firebase-br] CASE INVÁLIDO

Reinaldo diasmartins em gmail.com
Sex Jan 21 09:23:47 -03 2011


O código passado pelo Sandro Souza resolveu o problema:
Foi colocado o CASE no Where também conforme sugestão do Luiz Augusto.

Obrigado a todos.

------------------------------------------------------------------------
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
    (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 BETWEEN :p_ValorInicial and :p_ValorFinal)
ORDER BY
    DOA.DOADATRCA
------------------------------------------------------------------------




Em 20/01/2011 10:14, Reinaldo escreveu:
> 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
>





Mais detalhes sobre a lista de discussão lista