有这样一个表,求一条SQL语句
dph      jdrq         jdr
001      2005-1-1      a
001      2005-1-2      b
001      2005-1-5      c
002      2005-1-2      a
003      2005-1-1      a
003      2005-1-2      c现在要得出这样的记录,就是在DPH想同的情况下,选出日期最大的那条记录,
001      2005-1-5      c
002      2005-1-2      a
003      2005-1-2      c
求帮忙哦

解决方案 »

  1.   

    select a.dph, a.jdrq, b.jdr from
    (select dph, max(jdrq) as jdrq from your_table group by dph) a
    inner join your_table b on a.dph=b.dph and a.jdrq=b.jdrq
      

  2.   

    select 
        a.* 
    from 
        表 a
    where 
        not exists(select * from 表 where dph=a.dph and jdrq>a.jdrq)
      

  3.   

    select * from 
    (select a.*,row_number() over(partition by dph order by jdrq desc) row_num
    from tabname a
    ) b
    where b.row_num = 1搞定
      

  4.   


     select * from table_name a
     where jdr=(select rn from (select rowid rid,max(jdr)over(partition by dph) rn from table_name
     ) b
     where a.rowid=b.rid)
      

  5.   

    dph      jdrq         jdrselect dph  ,    max(jdrq),         jdr
    from tab
    group by dph,jdr
      

  6.   

    SELECT test.dph, test.jdrq, test.jdr
    FROM (SELECT dph, MAX(jdrq) AS jdrq, RTRIM(dph) + RTRIM(MAX(jdrq)) AS dd1
            FROM test
            GROUP BY dph) tmp LEFT OUTER JOIN
          test ON tmp.dd1 = RTRIM(test.dph) + RTRIM(test.jdrq)