我有一张表 XXMSC_PO_FORECAST_ADDON ,里边有俩字段 PLAN_ID 和 CREATE_DATE ,针对每个ID同一创建时间都有若干条数据,我想抽取最后产生的那批数据,怎样实现。我只找到下面的方法,不过耗时可能比较长,tx们有没有更好的方法,请指教:select *
from XXMSC_PO_FORECAST_ADDON a
where (a.plan_id, a.creation_date) in
(select b.plan_id,max(b.creation_date)
from XXMSC_PO_FORECAST_ADDON b
group by b.plan_id)
from XXMSC_PO_FORECAST_ADDON a
where (a.plan_id, a.creation_date) in
(select b.plan_id,max(b.creation_date)
from XXMSC_PO_FORECAST_ADDON b
group by b.plan_id)
解决方案 »
- 左连接出现重复记录时取时间最小的那条记录匹配的SQL
- sql的行列转换问题
- OCIEnvNlsCreate 失败
- 配置ODBC联Oracle时,出现下列错误,急救,在线等.
- 如何在Oracle中取得,用java写的存储过程返回的数组
- 求大神指导oracle DG技术中的物理备份精要--一定要顶起来--新手闯天下不容易
- ORACEL怎么查数据库的用户占用的进程和相对应的SQL语言?
- 在Oracle enterprise Manager console中看不到数据库
- 刚接触Oracle 配置问题???
- [在线等]ORACLE触发器编译错误,到底是我那地方写错了?
- 这个Sql语句怎么写?
- 请问oracle右连接是怎么写的?急,各位帮帮手
from XXMSC_PO_FORECAST_ADDON a
where (a.plan_id, a.creation_date)= any (select b.plan_id,max(b.creation_date)
from XXMSC_PO_FORECAST_ADDON b
group by b.plan_id)
select *
from XXMSC_PO_FORECAST_ADDON a
where a.creation_date=
( select max(b.creation_date) from XXMSC_PO_FORECAST_ADDON b
where a.plan_id=b.plan_id
)