#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. Большое вам спасибо! Это сработало идеально!