当前位置: 代码迷 >> Oracle开发 >> oracle 急 求sql,该怎么解决
  详细解决方案

oracle 急 求sql,该怎么解决

热度:30   发布时间:2016-04-24 07:15:02.0
oracle 急 求sql
PEOPLE 表;  人员表  id;
TRANSFER 表  门进记录表  p_id;
id 与p_id 对应;

select pp.name,trn.time,trn.type from people  pp ,
transfer trn
where pp.id=trn.p_id(+); 

如何查出来 每个人的最近的 一次进出记录?

张三,  十点,进门
李四, 十二点,出门

上面的 语句查出啦,用重复的人员记录;

张三,十点,进门
李四, 十二点,出门
张三,九点,出门;

求指点;
------最佳解决方案--------------------
select name,time,type from (
select pp.name,trn.time,trn.type,row_number() over (partition by pp.id order by trn.time desc) rn from people  pp ,transfer trn where pp.id=trn.p_id(+)
) where rn=1

------其他解决方案--------------------
自己改造成功      
  相关解决方案