我在表格中有两列。
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中执行此操作?
答案 0 :(得分:1)
SELECT MAX(Commission) FROM #test
WHERE Percentage <= 96.25
答案 1 :(得分:1)
select top 1 Commission
from theTable
where Percentage <= 96.25
order by Percentage desc
答案 2 :(得分:0)
只是为了提供另一种选择:
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
。