Pular para o conteúdo

Fóruns SQL e PL/SQL Erro ORA-00907: missing right parenthesis no oracle Erro ORA-00907: missing right parenthesis no oracle

#90672
Avatar photoLeonardo Litz
Participante

    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 &lt; 2</code>
    

    Desta forma trará apenas o ultimo registro da tabela.

    Vlw Leonardo Litz