Duvidas com query...

16/10/2006

Estou fazendo uma query para usar no delphi.. estou com um problema, estou usando CASE ... WHEN na query.. ai crio um campo chamado ACAO que ira receber I ou D conforme o CASE.. so que no WHERE da query nao estou conseguindo filtrar pelo valor do campo ACAO, pois como ele nao existe, como posso fazer isso ??

é mais ou menos assim:
DECLARE @ACAO CHAR(1)
SELECT @ACAO = :ACAO
SELECT
ACAO = CASE
WHEN ((DATA_HORA_INSTALACAO IS NOT NULL) AND (DATA_HORA_DESINSTALACAO IS NULL)) THEN ´I´
ELSE ´D´
END
FROM
ACESSORIOS ACE LEFT JOIN VEICULOS VEI ON
ACE.CD_VEICULO = VEI.CD_VEICULO
WHERE ((ACAO = @ACAO) OR (@ACAO IS NULL))

o que posso fazer pra filtrar isso?? valeu


Ara.es

Respostas

20/10/2006

Psergio.p

Ficaria mais ou menos assim


SELECT * FROM (
SELECT
CASE
WHEN ((DATA_HORA_INSTALACAO IS NOT NULL) AND (DATA_HORA_DESINSTALACAO IS NULL)) THEN ´I´
ELSE ´D´
END AS ACAO
FROM
ACESSORIOS ACE LEFT JOIN VEICULOS VEI ON
ACE.CD_VEICULO = VEI.CD_VEICULO) AS SQ
WHERE <COLOCA AQUI A CONDIÇÃO>

Beleza?


Responder Citar