I have three tables:
Measurements (MeasureID, Time, Distance, Value)
Events(EventID, Time Value)
EventValues
You can use CROSS APPLY.
SELECT M.*, Data.* FROM [Measure] M CROSS APPLY (SELECT TOP 1 EV.* FROM [Event] E JOIN EventValues EV ON E.EventID = EV.EventID WHERE M.Time >= E.Time ORDER BY E.Time DESC) AS Data ORDER BY M.Distance