Если предположить, что имя таблицы Table1
(изменить на подходящий), я бы предложил следующее:
SELECT
Table1.[Document ID],
Table1.Revision,
Max(Table1.Version) As Version
FROM
Table1 INNER JOIN
(
SELECT
Table1.[Document ID],
Max(Table1.Revision) AS Rev
FROM
Table1
GROUP BY
Table1.[Document ID]
) DocRev
ON
Table1.[Document ID] = DocRev.[Document ID] AND
Table1.Revision = DocRev.Rev
GROUP BY
Table1.[Document ID],
Table1.Revision
Здесь вложенный запрос SELECT
сначала получает наибольшее значение Revision
для каждого Document ID
:
SELECT
Table1.[Document ID],
Max(Table1.Revision) AS Rev
FROM
Table1
GROUP BY
Table1.[Document ID]
Затем INNER JOIN
передается в исходную таблицу, чтобы получить все записи Version
для каждого максимального значения Revision
, при этом максимальная запись Version
наконец выводится в результат.