› Fóruns › SQL e PL/SQL › Erro ORA-00907: missing right parenthesis no oracle › Erro ORA-00907: missing right parenthesis no oracle
Tente assim:
SELECT *
FROM (SELECT CASE
WHEN (FERIADO_TAB = 1 OR FERIADO_TAB = 2) THEN
(SELECT *
FROM(SELECT A.DATA_TAB
FROM TAB A
WHERE A.DATA_TAB < B.DATA_TAB
AND A.FERIADO_TAB = 0
AND ROWNUM = 1
ORDER BY A.DATA_TAB DESC))
ELSE
DATA_TAB
END
FROM TABB
WHERE CENTRO_CUSTO_TAB = 30001
AND DATA_TAB < '20090422'
AND DIA_SEMANA_TAB = 2
ORDER BY DATA_TAB DESC)
WHERE ROWNUM = 1
Só uma coisa, creio que vc queira trazer o ultimo regristro da tabela, como o rownum esta antes do order by, neste caso voce nao vai trazer o ultimo. Faça assim
select *
FROM(SELECT A.DATA_TAB
FROM TAB A
WHERE A.DATA_TAB < B.DATA_TAB
AND A.FERIADO_TAB = 0
ORDER BY A.DATA_TAB DESC) a
where rownum < 2</code>
Desta forma trará apenas o ultimo registro da tabela.
Vlw Leonardo Litz