Member 14101734 Ответов: 2

Привет могу ли я узнать как получить последнюю обновленную запись в SQL server


у меня есть два стола
1)Автомобиль Детали
2)Таблица отслеживания

Может ли кто-нибудь помочь мне, как я могу получить последние записи всех транспортных средств.

Что я уже пробовал:

select t.IMEINo,t.speed,t.Ignition,t.TrackTime,tblSATVehicles.VehicleNumber
from  Tracking t
inner join tblSATVehicles on t.IMEINo=tblSATVehicles.DeviceIMEI
inner join (
    select IMEINo, max(TrackTime) as maxtime
    from Tracking tm
    group by IMEINo
) tm on t.IMEINo = tm.IMEINo and t.TrackTime= tm.maxTime

2 Ответов

Рейтинг:
2

RickZeeland

Может быть, вы можете использовать ВЫХОД предложение, но это не работает с оператором select:
Предложение вывода (Transact-SQL) - SQL Server | Microsoft Docs[^]


Рейтинг:
0

OriginalGriff

Единственный надежный способ получить последние данные-это установить временные метки строк при их вставке или обновлении: затем вы можете использовать ORDER BY timeStampColumn DESC, чтобы получить их в правильном порядке, и TOP 1, Чтобы выбрать только последний элемент.

Если у вас нет временной метки, то вы не можете гарантировать упорядочение - и это означает, что ваша БД может возвращать строки в любом порядке, который она считает наиболее подходящим. Что не обязательно должно быть в одном и том же порядке два раза подряд!


MadMyche

Надеюсь, что значение t.TrackTime OP соответствует этому требованию.