有如下表:
pid   pname
------------------------------
75      p1
76      p2
vid   version  pid
------------------------------
118 v1.0 75
119 v2.0 75
121 v3.0 75
133      v1.5     76
pid和vid都自动增长列请问如何选出最新的version?

解决方案 »

  1.   


    --咋发了两个啊?
    select a.pid,a.pname,b.version
    from table_1 a,(select pid,version 
                    from(select vid,version,pid,row_number()over(partition by pid order by vid desc) rn from table_2)
                    where rn=1) b
    where a.pid=b.pid;
      

  2.   

    select a.pid,a.name,max(b.version)
    from tb1 a,tb2 b
    where a.pid=b.pid
    group by a.pid,a.name
      

  3.   

    select a.pid,a.pname,b.version
      from tablea a,(select vid,pid,max(version) version from tableb group by vid,pid) b
    where a.pid=b.pid(+)