I'm trying to use a case when in a sql procedure.
What i want is that when the variable @ID_ETAPA is 6 the where is a little diferent. But i'm getting multiple erros. Incorrect syntax near = And Incorrect syntax near ELSE Someone knows what i'm missing?
WHERE CASE
WHEN @ID_ETAPA=6 THEN
SS.ID_STATUSSOLICITACAO = 1 -- PENDENTES
AND SS.Id_etapa = @ID_ETAPA
Else
SS.ID_STATUSSOLICITACAO = 1 -- PENDENTES
END
THE full select with error in the where clause.
SELECT DISTINCT CF.NOM_FILIAL,
SS.COD_SOLICITACAO,
SS.COD_GTV,
SS.SEQ_GTV,
SS.COD_SERIEGTV,
ST.DES_TPSERVICO,
SSI.DES_SISTEMAANALISE,
SSI.ID_SISTEMAANALISE,
SM.DES_MOTIVOSOLICITACAO,
SE.DES_ETAPA,
SS.ID_ETAPA,
SST.DES_STATUSSOLICITACAO,
CFSOLICITANTE.NOM_FUNC AS NOM_SOLICITANTE,
CFSUCESSOR.NOM_FUNC AS NOM_SUCESSOR,
CFOPERADOR.NOM_FUNC AS NOM_OPERADOR,
SS.DES_DETALHAMENTOGTV,
SA.ID_GRUPOACESSO
INTO #DADOS
FROM SSE_SOLICITACAO SS
INNER JOIN COR_FILIAL CF
ON CF.COD_REGIONAL = SS.COD_REGIONAL
AND CF.COD_FILIAL = SS.COD_FILIAL
INNER JOIN SSE_TPSERVICO ST
ON ST.ID_TPSERVICO = SS.ID_TPSERVICO
INNER JOIN SSE_SISTEMAANALISE SSI
ON SSI.ID_SISTEMAANALISE = SS.ID_SISTEMAANALISE
INNER JOIN SSE_MOTIVOSOLICITACAO SM
ON SM.ID_MOTIVOSOLICITACAO = SS.ID_MOTIVOSOLICITACAO
INNER JOIN SSE_ETAPA SE
ON SE.ID_ETAPA = SS.ID_ETAPA
INNER JOIN SSE_STATUSSOLICITACAO SST
ON SST.ID_STATUSSOLICITACAO = SS.ID_STATUSSOLICITACAO
INNER JOIN COR_FUNCIONARIO CFSOLICITANTE
ON CFSOLICITANTE.COD_FUNC = SS.COD_FUNCSOLICITANTE
INNER JOIN SSE_ACESSO SA
ON SA.COD_FUNCSOLICITANTE = SS.COD_FUNCSOLICITANTE
LEFT JOIN COR_FUNCIONARIO CFSUCESSOR
ON CFSUCESSOR.COD_FUNC = SS.COD_FUNCSUCESSOR
LEFT JOIN COR_FUNCIONARIO CFOPERADOR
ON CFOPERADOR.COD_FUNC = SS.COD_FUNCOPERADOR
WHERE SS.ID_STATUSSOLICITACAO = CASE
WHEN @ID_ETAPA=6 THEN
SS.ID_STATUSSOLICITACAO = 1 -- PENDENTES
AND SS.Id_etapa = @ID_ETAPA
Else
SS.ID_STATUSSOLICITACAO = 1 -- PENDENTES
END
ORDER BY SS.COD_SOLICITACAO