新手求帮助。
一个表table,字段:主键ID,员工id,养老金,医保费等等。
外键表:员工表
想实现的是,每次插入数据,都去查询对应的员工最近的养老金,医保费等等的数据。
比如100个员工,第一次插入数据,养老金什么的数据都还没有,那查出来肯定是空的,下一次插入相同员工的时候,就要查出来上一次养老金数据,就是查询出最近的数据。
怎么做不知道啊?求高手解答。
[解决办法]
row_number() over
[解决办法]
create table t1 (id number(5),y_id number(5),y_my number(10,2),t_date date);insert into t1 values (1,1,1000,date'2012-01-01');insert into t1 values (2,2,2000,date'2012-01-01');insert into t1 values (3,3,3000,date'2012-01-01');insert into t1 values (4,1,1500,date'2012-02-01');insert into t1 values (5,2,2500,date'2012-02-01');insert into t1 values (6,3,3500,date'2012-02-01');insert into t1 values (7,1,1100,date'2012-03-01');insert into t1 values (8,3,2200,date'2012-03-01');insert into t1 values (9,4,1000,date'2012-03-01');commit;--查询某个员工最后一次记录员select *from( select * from t1 where y_id = 1 order by t_date desc)where rownum < 2 --查询所有员工最后一次记录员select tt.id,tt.y_id,tt.y_my,tt.t_datefrom ( select a.*,row_number() over(partition by y_id order by t_date desc) rn from t1 a) ttwhere rn = 1