SQL - 检索最接近的较低值

时间:2014-10-14 04:55:17

标签: sql sql-server sql-server-2008

当列值不相等时,我想检索最接近的较低薪酬值。

例如:10 yearsOfService应该等于650.00的值; 14年的服务将等于下面激励表中的值840.00,

ID   Pay     yearsOfService 
1   125.00      0
2   156.00      2
3   188.00      3
4   206.00      4
5   650.00      6
6   840.00      14
7   585.00      22
8   495.00      23
9   385.00      24
10  250.00      25 

我尝试了几种不同的方法;包括:

          SELECT TOP 1 (pay) as incentivePay
          FROM incentive
          WHERE yearsOfService = '10'

这只适用于匹配的yearsOfService。

用10年的服务:

RESULTSET = [1  650.00]

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

请尝试:

SELECT TOP 1 (pay) as incentivePay
FROM incentive
WHERE yearsOfService <= '10'
ORDER BY yearsOfService desc