Просто ради предоставления другого варианта:
WITH ranked AS (
SELECT
*,
rank = CASE
WHEN Percentage > @MaxPercentage THEN 0
ELSE ROW_NUMBER() OVER (ORDER BY Percentage DESC)
END
FROM atable
)
SELECT Commission
FROM ranked
WHERE rank = 1
Как я уже сказал в своем комментарии к вашему вопросу, не совсем ясно, какая строка должна фактически обеспечивать правильный вывод, ту, которая имеет максимальный Percntage
или ту, которая имеет максимальный Commission
. Исходя из этого, вы можете заменить ORDER BY Percentage DESC
на ORDER BY Commission DESC
.