试图从表中提取最近的工资率

时间:2011-08-09 20:58:38

标签: sql sql-server

我只是坚持看似简单的东西,但我无法弄清楚语法。我有一张工资表,与费率变化的日期和员工ID有关。每位员工多条记录。

我正在尝试获取最近日期的列表,以及仅在该日期的工资。我试过了: SELECT MAX(Date),Rate,EmpID FROM History

但这不起作用。它似乎返回了每个工资率的记录。

其他人如何有效地做到这一点?

3 个答案:

答案 0 :(得分:5)

这会为每个Rate提供最新的EmpID

select [Date],
       Rate,
       EmpID
from (select [Date],
             Rate,
             EmpID,
             row_number() over(partition by EmpID order by [Date] desc) as rn
      from History) as H
where rn = 1

在此尝试:http://data.stackexchange.com/stackoverflow/q/109020/

答案 1 :(得分:2)

SELECT Date, Rate, EmpID
FROM   History A
WHERE  Date = (
           SELECT Max(Date)
           FROM   History B
           WHERE  A.EmpID = B.EmpId )

答案 2 :(得分:0)

select * 
from payrates 
where date = (select max(dates) 
                from payrates);