Compara duas datas... pedido de ajuda

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
JSURF
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qua, 08 Out 2014 2:10 pm

Boa tarde,

Sou novo no forum e preciso de ajuda.

Para listar o número de dias de atraso de uma factura, preciso comparar duas datas: data 1 e data2.
Se data 1 for superior à data 2 em mais de > 15 dias, deve assumir a (data1-1DIA)
Se a data 1 for inferior ou igual à data 2, deve assumir a data2 + 15 dias

Estava a tentar a função de DECODE abaixo, mas obviamente está a da erro. alguma sugestão?

DECODE(TRUNC(R1.DATA1)-TRUNC(R1.DATA2), >15, DATA1-1, <=15, DATA1+15)

Pela ajuda
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

É que o decode não dá pra usar < >. Pra usar isso, tem que usar GREATEST.
Uma outra forma menos complicada é usar CASE WHEN no select. Neste caso, é possível usar < > AND OR, etc.

Veja:
http://glufke.net/oracle/viewtopic.php?t=1990
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante