There are probably much better ways, but the following should work:;WITH cteAS( SELECT T1.[date] AS TDate ,T1.temperature ,T2.[date] AS WDate ,T2.windspeed ,ROW_NUMBER() OVER (PARTITION T2.[date] ORDER BY T1.[date] DESC) AS RowNum FROM Table1 T1 JOIN Table2 T2 ON T1.[date] < T2.[date] UNION ALL SELECT T1.[date] AS TDate ,T1.temperature ,T2.[date] AS WDate ,T2.windspeed ,ROW_NUMBER() OVER (PARTITION T2.[date] ORDER BY T1.[date]) AS RowNum FROM Table1 T1 JOIN Table2 T2 ON T1.[date] >= T2.[date])SELECT TDate, temperature, WDate, windspeedFROM cteWHERE RowNum <= 5ORDER BY TDate