Вот что даст вам запрошенный вывод:
With NumberedA As
(
Select *
, Row_Number() Over ( Partition By N0, Date Order By Time ) Num
From TableA
)
, NumberedB As
(
Select A.N0, A.Date
, A.Time ATime
, B.Time BTime
, Row_Number() Over ( Partition By A.N0, A.Date, A.Time Order By B.Time ) Num
From TableA A
Join TableB B
On B.N0 = A.N0
And B.Date = A.Date
And B.Time > A.Time
)
Select A.N0, A.Date, A.Time, B.Time
From NumberedA A
Join NumberedB B
On B.N0 = A.N0
And B.Date = A.Date
And B.ATime = A.Time
And B.Num = A.Num
Тем не менее, было бы полезно, если бы мы поняли обоснование вашего запроса.