SQL> select zhigongbh,qishisj,jieshusj,wenhuacdbm from person_education t where zhigongbh in('80284','70379');
职工编号  开始时间    结束时间    文化程度
ZHIGONGBH QISHISJ     JIESHUSJ    WENHUACDBM
--------- ----------- ----------- ----------
80284     1998-9-1    2001-7-1    77
80284     2004-9-1    2008-7-1    22
80284     2001-9-1    2004-7-1    66
80284     1992-9-1    1998-7-1    88
70379     2002-9-1    2003-6-1    66
70379     1999-9-1    2002-7-1    66
70379     1998-9-1    1999-7-1    77
70379     1996-9-1    1998-7-1    88
70379     1990-9-1    1993-7-1    88
70379     2007-7-1    2007-7-1    22
70379     2003-9-1    2007-7-1    22要求显示为
ZHIGONGBH QISHISJ     JIESHUSJ    WENHUACDBM
--------- ----------- ----------- ----------
80284     2004-9-1    2008-7-1    22
70379     2007-7-1    2007-7-1    22
即 显示 最大开始时间的那条 
用sql解决。
求高手啊。。

解决方案 »

  1.   

    是每一个 ZHIGONGBH 的最大开始时间 QISHISJ 的那条吗?
      

  2.   

    试一下看看
    select *
      from (select zhigongbh,qishisj,jieshusj,wenhuacdbm, 
                   row_number() over(partition by zhigongbh order by qishisj desc) as isort
              from person_education
             where zhigongbh in('80284','70379')
           ) t
     where isort = 1;
      

  3.   

    以ZHIGONGBH分组,max(QISHISJ ) 和max(JIESHUSJ) 没环境不能测试
      

  4.   

    用分组 和max来不行的。 忽略了后面的wenhuacdbm....