子表: sub     
                 subid,   mid,   hour   
                  1101   101     5
                  1102   101     8
                  1103   102     7
                  1104   102     3
                  1105   102     6
                  1106   103     4   
希望显示:  主表信息和关联从表的hour最大值的那一条信息,结果如下
        101    张三  男  1101   8
        102    李司  女  1102   7
        103    王五  男  1103   4本人写了一条SQL语句,可是执行出错,提示 该命令为未正确结束
 select A.* ,  a.* from ( select B.* from sub  B 
                              where B.mid= A.mid
                              order by to_number(B.hour) desc ) a 
                              where rownum<2 
 from master A

解决方案 »

  1.   


    SELECT *
      FROM MASTER, (SELECT MID, MAX(HOUR) HOUR FROM SUB GROUP BY MID) X
     WHERE MASTER.MID = X.MID;
      

  2.   

    select A.* ,  a.* from ( select B.* from sub  B 
                                  where B.mid= A.mid 
                                  order by to_number(B.hour) desc ) a 
                                  where rownum <2 
    from master A
    你这样写只会出来两条纪录楼上方法可以,速度应该也是最快的,这是另一种方法
    另外你的语法有错误子查询不能查询外层的,同一层SQL出现两个FROM,两个别名为A
    select *
    from (
    select a.*,b.*,row_number() over (partition by b.mid order by to_number(b.hour) desc) rn
    from master a,sum b
    where a.mid=b.mid)
    where rn=1
      

  3.   


    select a.*, b.hour
    from master a, 
        (select 
           mid,
           hour, 
           row_number() over (partition by mid order by to_number(hour) desc) rn 
         from sub ) b
    where a.mid=b.mid
      and rn=1