Pular para o conteúdo

Fóruns SQL e PL/SQL DÚVIDA [SENTENÇA] DÚVIDA [SENTENÇA]

#93487
fsitja
Participante

    Algo como:

    SELECT mes,
    ano,
    to_number(to_char(dt_mes_anterior, 'MM')) mes_ant,
    to_number(to_char(dt_mes_anterior, 'YYYY')) ano_ant
    FROM (SELECT mes,
    ano,
    add_months(to_date(lpad(mes, 2, '0') || ano
    , 'MM/YYYY'), -1) dt_mes_anterior
    FROM t);

    Exemplo:
    ————————————————————————————————————————————————-

    SQL> with t as (
    2 select 1 mes, 2010 ano from dual)
    3 -- fim dados de exemplo
    4 SELECT mes,
    5 ano,
    6 to_number(to_char(dt_mes_anterior, 'MM')) mes_ant,
    7 to_number(to_char(dt_mes_anterior, 'YYYY')) ano_ant
    8 FROM (SELECT mes,
    9 ano,
    10 add_months(to_date(lpad(mes, 2, '0') || ano
    11 , 'MM/YYYY'), -1) dt_mes_anterior
    12 FROM t);

    MES ANO MES_ANT ANO_ANT
    ---------- ---------- ---------- ----------
    1 2010 12 2009

    SQL>