sql - Retrieve only the first row with ORDER BY -
i have table contains salary increase history (oracle) emp_id - employee identification, inc_date - date salary changed , inc_amount - amount of change in salary. inc_amount last 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 pseudo code query do:
select epi.inc_amt emp_pay_inc epi epi.inc_date = max(epi.inc_date) -- know won't work, illustration what have tried (i didn't want use sub-query in event there duplicate inc_date same emp_id:
select epi.inc_amt emp_pay_inc epi rownum = 1 order epi.inc_date but doesn't work. returns inc_amount 0 inc_date 1/1/2002. apparently oracle stores rownum appear in original table not data set returned query.
you should able use subquery this:
select * (select epi.inc_amt emp_pay_inc epi order epi.inc_date desc) rownum = 1;
Comments
Post a Comment