[firebase-br] CASE INVÁLIDO
Eduardo Pombo
eduardo em embras.net
Sáb Jan 22 01:41:41 -03 2011
acredito que a dica no amigo Luis Augusto realmente resolva o
problema, verique apenas antes se a versao do firebird utilzado ja
suporta esta sintaxe, mas ficaria assim:
select DADOR.* from
(
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
) DOADOR
WHERE DOADOR.ULT_VALOR BETWEEN :p_ValorInicial and :p_ValorFinal
ORDER BY
DOADOR.DOADATRCA
Espero ter ajudado
Em 20 de janeiro de 2011 10:14, Reinaldo <diasmartins em gmail.com> 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
>
--
Atenciosamente
José Eduardo Pombo de Barros
Gerente de Manutenção de Sistemas
Mais detalhes sobre a lista de discussão lista