查出一个表里面每个主键的满足一定条件的唯一一条记录(Oracle)
求助:查出一个表里面每个主键的满足一定条件的唯一一条记录(Oracle)
求助:
要查出一个表里面每个主键的满足一定条件的唯一一条记录
比如一个表t_data,其中主键是userid,每个人都有money,dttime,year
现在要查出每个人userid,在某个year里面最后一次交费的记录
------解决方案--------------------
求助:
要查出一个表里面每个主键的满足一定条件的唯一一条记录
比如一个表t_data,其中主键是userid,每个人都有money,dttime,year
现在要查出每个人userid,在某个year里面最后一次交费的记录
------解决方案--------------------
with t(userid,money,dttime,year) as
(
select 1,200,to_date('2012-03-04','yyyy-mm-dd'),2012 from dual
union all select 1,200,to_date('2012-05-04','yyyy-mm-dd'),2012 from dual
union all select 2,200,to_date('2012-05-04','yyyy-mm-dd'),2012 from dual
union all select 2,200,to_date('2012-03-04','yyyy-mm-dd'),2012 from dual
)
select * from t where dttime=(select max(dttime) from t t1 where t.userid=t1.userid and t.year=2012);
/*
USERID MONEY DTTIME YEAR
---------- ---------- -------------- ----------
1 200 04-5月 -12 2012
2 200 04-5月 -12 2012
*/