Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment JOINDRE des tables en utilisant une plage de dates sans avoir de procédures

Quelque chose de simpliste pour commencer :

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;

Il existe probablement une meilleure méthode qui peut fonctionner plus rapidement.