select * from 
  (select a.* from a,b where a.stcdt=b.stcdt order by ymdhm)
where rownum<16;

解决方案 »

  1.   

    to bzszp(SongZip):
        不是所有STCDT的最新的15条纪录
        是每个STCDT都要取相应的最新的15条纪录
      

  2.   

    是这个意思么?SELECT A.* FROM A, B 
    WHERE B.ROWNUM > ( SELECT COUNT(*)-15 FROM B ) AND A.STCDT = B.STCDT
      

  3.   

    select * from a where (stcdt,ymdhm) in (select aa.stcdt,aa.ymdhm from (select stcdt,max(ymdhm) ymdhm from a group by stcdt) aa,b where aa.stcdt=b.stcdt order by aa.ymdhm desc);
      

  4.   

    to beckhambobo(beckham):
       我要最新的15条纪录
       比如在表B中有5条纪录,也就是说有5个STCDT,都不重复,其中每个STCDT在表A中我只想取出该STCDT中YMDHM最新的15条纪录
       也就是最后的结果应该是5*15条纪录
       当然表A中还有很多其他的STCDT
       
       不知道我说清楚没有,谢谢:)
      

  5.   

    我倒是明白楼上的题目要求
    只不过用1句sql实在搞不定,我看得用个function还差不多
      

  6.   

    我写得很麻烦,估计效率会很低。
    但结果是正确的
    试验:取出tcn中每种aaa项对应的bbb中最小的三条纪录16:06:49 SQL> select * from tcn;AAA              BBB
    ---------- ---------
    a                  1
    b                  1
    b                  1
    b                  1
    c                  1
    d                  2
    d                  5
    d                  3
    d                  6
    d                 11
    a                  2
    a                 -1
    b                 -1
    b                 15
    c                 -1已选择15行。实际:240
    16:07:04 SQL> select id,aaa,bbb from 
    16:07:19   2  (select aa.id-bb.id id ,aa.aaa,aa.bbb from 
    16:07:19   3  (select rownum id,a.*  from
    16:07:19   4    (select * from tcn  order by aaa,bbb) a) aa,
    16:07:19   5  (select aaa,min(id) id from(select rownum id,a.*  from
    16:07:19   6    (select * from tcn  order by aaa,bbb) a) group by aaa) bb
    16:07:19   7  where aa.aaa=bb.aaa(+)) where id<3;       ID AAA              BBB
    --------- ---------- ---------
            0 a                 -1
            1 a                  1
            2 a                  2
            0 b                 -1
            1 b                  1
            2 b                  1
            0 c                 -1
            1 c                  1
            0 d                  2
            1 d                  3
            2 d                  5已选择11行。实际:180
    16:07:20 SQL>