給与の増加履歴(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
しかし、これはうまくいきません。inc_amount
2002 年 1 月 1 日の場合は0 を返しますinc_date
。どうやらOracleはROWNUM
、クエリによって返されたデータセットではなく、元のテーブルに表示されるとおりに保存します。