Как выбрать значения из диапазона - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть две колонки в таблице.

Percentage, Commission
100           20
98            19.5
97.5          19
96.25         18.5
95            18
...
80            15
  • Если мой процент составляет 95,25, то комиссия должна быть 18.

  • Если мой процент составляет 97,5, то комиссия должна быть 19.

Как я могу сделать это в SQL Server?

Ответы [ 3 ]

1 голос
/ 29 апреля 2011
select top 1 Commission
from theTable
where Percentage <= 96.25
order by Percentage desc
1 голос
/ 28 апреля 2011
SELECT MAX(Commission) FROM #test
WHERE Percentage <= 96.25
0 голосов
/ 29 апреля 2011

Просто ради предоставления другого варианта:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...