Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como JOIN tabelas usando um intervalo de datas sem ter procedimentos


Algo simplista para começar:
SELECT A.Num1
      ,A.Num2
      ,NVL(
         (SELECT DISTINCT
                 FIRST_VALUE(B.Status)
                 OVER (ORDER BY B.Date DESC)
          FROM   B
          WHERE  B.Num1 = A.Num1
          AND    B.Num2 = A.Num2
          AND    B.Date <= A.Date
         ),'New') AS Status
      ,A.Date
FROM A;

Provavelmente há um método melhor que pode funcionar mais rápido.