select * from
(select a.* from a,b where a.stcdt=b.stcdt order by ymdhm)
where rownum<16;
(select a.* from a,b where a.stcdt=b.stcdt order by ymdhm)
where rownum<16;
解决方案 »
- 为什么提示SQL命令的结束有问题
- oracle中的to_date在mysql中用什么表示
- oracle 中怎么在表中加上行的权限?
- 大家帮忙啊!!! 急死了!!! 谢谢大家!!!!!!!!
- 触发器问题 大家帮看看
- 系统数据库维护问题?有详细说明!
- oracle9i的安装问题,请各位不吝赐教。急!在线等!
- 为何这句SQL在9i存储过程里能执行,在8i里就不行了?
- 在线了,Oracle的环境如何设置,如何和一个应用程序连接?
- oracle PL/Sql查询---获取迟到、早退时间
- 在SQL Server中存在判断是否一个表存在记录的函数(exist()),请问在Oracle中是否有类似的函数?谢谢!
- 求教Oracle中有关SQLCA的问题!!!!
不是所有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>