Выберите всю строку с максимальным идентификатором

#sql #sql-server #database #select #max

Вопрос:

В настоящее время я пытаюсь получить все измерения от конкретного пользователя в своей базе данных, где строка имеет максимальный идентификатор измерения (он же их последние измерения).

Что у меня есть до сих пор:

 SELECT *
FROM Measurements 
WHERE Measure_ID = (SELECT max(Measure_ID) FROM Measurements) AND Client_ID = 1
 

Однако все, что он извлекает, — это имена столбцов, а не фактические данные. Эта инструкция SQL работает со всеми остальными таблицами, которые я использую, и я понятия не имею, почему она не будет работать для моей таблицы измерений. Я даже заново создал таблицу, но она все еще не работает. Я скопировал слово в слово из других операторов, которые работают, и изменил переменные, чтобы они соответствовали этому оператору. По-прежнему ничего. Есть ли что-то, чего мне не хватает?

Любая помощь будет признательна!

Комментарии:

1. При двукратной ссылке на одну и ту же таблицу в запросе важно использовать псевдонимы таблиц и префиксировать ими свои столбцы.

Ответ №1:

Просто используйте order by :

 select top (1) m.*
from measurements m
where m.client_id = 1
order by m.Measure_ID desc;
 

Комментарии:

1. Большое вам спасибо! Это сработало идеально!