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