to bzszp(SongZip): 不是所有STCDT的最新的15条纪录 是每个STCDT都要取相应的最新的15条纪录
是这个意思么?SELECT A.* FROM A, B WHERE B.ROWNUM > ( SELECT COUNT(*)-15 FROM B ) AND A.STCDT = B.STCDT
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);
to beckhambobo(beckham): 我要最新的15条纪录 比如在表B中有5条纪录,也就是说有5个STCDT,都不重复,其中每个STCDT在表A中我只想取出该STCDT中YMDHM最新的15条纪录 也就是最后的结果应该是5*15条纪录 当然表A中还有很多其他的STCDT
不知道我说清楚没有,谢谢:)
我倒是明白楼上的题目要求 只不过用1句sql实在搞不定,我看得用个function还差不多
我写得很麻烦,估计效率会很低。 但结果是正确的 试验:取出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>
不是所有STCDT的最新的15条纪录
是每个STCDT都要取相应的最新的15条纪录
WHERE B.ROWNUM > ( SELECT COUNT(*)-15 FROM B ) AND A.STCDT = B.STCDT
我要最新的15条纪录
比如在表B中有5条纪录,也就是说有5个STCDT,都不重复,其中每个STCDT在表A中我只想取出该STCDT中YMDHM最新的15条纪录
也就是最后的结果应该是5*15条纪录
当然表A中还有很多其他的STCDT
不知道我说清楚没有,谢谢:)
只不过用1句sql实在搞不定,我看得用个function还差不多
但结果是正确的
试验:取出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>