Есть три таблицы, из которых мне нужна информация: Machine, MachineActivity и LocationHistory. Таблица Machine содержит информацию о машине, такую как MachineNumber. MachineActivity предоставляет информацию об активности за определенный день, и, наконец, LocationHistory просто сохраняет время нахождения машины в течение дня.
Я написал представление, которое получает информацию о машине за определенный день и возвращает историю их местоположения. до 6 утра. Проблема в том, что некоторые машины имеют местоположения после 6 утра, в этом случае я все еще хочу вернуть данные о местоположении, поэтому мне нужно вернуть координаты местоположения в течение ближайшего времени, доступного к 6 часам утра, но не обязательно меньше 6 часов утра.
SELECT DISTINCT
MA.ActivityDate,
M.MachineNumber,
LH.Latitude,
LH.Longitude
FROM
Machine M WITH(NOLOCK)
JOIN
MachineActivity MA WITH(NOLOCK) ON MA.MachineId = M.Id
JOIN
LocationHistory LH WITH(NOLOCK) ON LH.MachineActivityId = MA.Id
WHERE
(CAST(LH.LocationTime AS Time) < '06:00:00')
Вот где я сейчас с ним. Я знаю, что, вероятно, понадобится подзапрос, и в основном это вопрос . Однако я не могу преобразовать этот вопрос в свой сценарий, тот факт, что он написан на PostgreSQL, не помогает, когда это SQL Сервер.