Oracle
 sql >> Database >  >> RDS >> Oracle

Come UNIRE le tabelle usando un intervallo di date senza avere procedure

Qualcosa di semplicistico per cominciare:

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;

Probabilmente esiste un metodo migliore che potrebbe funzionare più velocemente.