Я пытаюсь написать запрос, который возвращает самые последние позиции GPS из таблицы GPSReport для каждого уникального устройства. В таблице 50 устройств, поэтому мне нужно только вернуть 50 строк.
Вот что я до сих пор (не работает)
SELECT TOP(SELECT COUNT(DISTINCT device_serial) FROM GPSReport) * FROM GPSReport AS G1
RIGHT JOIN
(SELECT DISTINCT device_serial FROM GPSReport) AS G2
ON G2.device_serial = G1.device_serial
ORDER BY G2.device_serial, G1.datetime DESC
Это возвращает 50 строк, но не возвращает уникальную строку для каждого device_serial. Он возвращает все отчеты для первого устройства, затем все отчеты для второго устройства и т.д.
Я пытаюсь сделать это в одном запросе?