我有一个表,其中包含加薪历史 (Oracle) emp_id
- 用于员工身份识别,inc_date
- 工资更改日期和 inc_amount - 工资更改金额。我想得到inc_amount
最后一个inc_date.
emp_pay_inc:
==============================
emp_id | inc_date | inc_amount
==============================
625 | 1/1/2002 | 0
625 | 5/6/2003 | 12000
625 | 1/7/2004 | 35000
625 | 8/1/2009 | -5000
我希望查询执行的伪代码:
SELECT epi.inc_amt
FROM emp_pay_inc epi
WHERE epi.inc_date = MAX(epi.inc_date) -- I know this won't work, it is just for illustration
我尝试过的(我不想使用子查询,以防有inc_date
相同的重复emp_id
:
SELECT epi.inc_amt
FROM emp_pay_inc epi
WHERE ROWNUM = 1
ORDER BY epi.inc_date
但这不起作用。它返回 2002 年 1 月 1 日的inc_amount
0 inc_date
。显然,Oracle 将ROWNUM
它们存储在原始表中,而不是查询返回的数据集。