Я хочу получить последний контракт с последней версией. Внутренний запрос работает, но, к сожалению, мне нужно, чтобы выяснить способ заставить его работать, когда он находится внутри другого запроса ...SQL получить последнюю запись из набора результатов, T-SQL
Это работает:
SELECT * FROM contract t1
WHERE revisionnum = (select max(revisionnum)
from contract t2
where t1.contractnum = t2.contractnum)`
Проблема заключается в том, что он находится внутри select * from contract where
заявления, так это выглядит так:
SELECT *
FROM contract
WHERE -- this line cannot be changed!
exists -- not sure about this
( SELECT * FROM contract t1
WHERE revisionnum = (select max(revisionnum)
from contract t2
where t1.contractnum = t2.contractnum)
)
Как это сделать?
Вы выполняете запрос в качестве подзапроса и подаете результат на другой запрос, который просто показывает результат подзапроса. «выберите * from (выберите * из таблицы, где ...)« Почему? Что добавляет внешний запрос к результату? Первый запрос, который вы показываете, - это ответ. – TommCatt
Первый «внешний» запрос - это объект таблицы. Невозможно изменить его –