Я бы использовал order by
:
select column1, column2
from t
order by column1 desc, column2 desc
fetch first 1 row only;
Я вижу, что вы используете MS Access, так что это сформулировано как:
select top (1) column1, column2
from t
order by column1 desc, column2 desc;
Единственная проблема с этим подходом состоит в том, что он может вернуть несколько строк, если у вас есть дубликаты в данных. Если это проблема, либо включите уникальный идентификатор в качестве последнего ключа в order by
:
order by column1 desc, column2 desc, id;
Или используйте агрегацию:
select max(column1), max(column2)
from (select top (1) column1, column2
from t
order by column1 desc, column2 desc
) as t;
max()
служит только для уменьшения результирующего набора до одной строки (в случае дубликатов). Поскольку все значения из подзапроса будут одинаковыми, будет работать практически любая функция агрегирования.