Left Join table with first match historically
WITH cte AS ( SELECT table_a.value value_a, 
                     table_b.value value_b, 
                     ROW_NUMBER() OVER (PARTITION BY table_b.value ORDER BY table_a.&quot;date&quot; DESC) rn 
              FROM table_a
              JOIN table_b ON table_a.&quot;date&quot; &lt;= table_b.&quot;date&quot;)
SELECT value_b, value_a
FROM cte
WHERE rn = 1;

fiddle
Check does this is applicable to your server version.