当前位置: 代码迷 >> Oracle管理 >> 用not exists 取最大值为什么没用,该如何解决
  详细解决方案

用not exists 取最大值为什么没用,该如何解决

热度:539   发布时间:2016-04-24 05:42:53.0
用not exists 取最大值为什么没用
select * from (select * from 
UT_MEMBERORGRELA t where not exists 
  (select 1 from UT_MEMBERORGRELA t1 where t1.Pkid=t.pkid and TRUNC(t1.Enterdate)>TRUNC(t.Enterdate)))
   
  where mpkid='RTCS000000000109364'
一对三的结果,这样查询还是三条,为什么??

------解决方案--------------------
因为你里面的子查询的exists中筛选的是pkid相同的时间最大值啊,如果你的一个mpkid中有3个不同的pkid当然出来的就是三条,每条都是那个pkid最大的。如果你筛选mpkid最大的,就把子查询中的
SQL code
where t1.Pkid=t.pkid
  相关解决方案