假如有表A,里面有2个字段,id,date, B表有2个字段 parentid,material。A的id字段和B的parentid是外键关系。我现在想求出每个material中时间最大的那条记录。
select b.material,a.date from A a inner join B b on a.id=b.parentid and inner join (select bb.material,max(aa.date) from A aa inner join B bb on aa.id=bb.parentid group by bb.material) xx on xx.date = a.date and xx.material=b.materialA,B表的数据都有上万条。上面的写法速度很慢,求一个高效率的sql。
select b.material,a.date from A a inner join B b on a.id=b.parentid and inner join (select bb.material,max(aa.date) from A aa inner join B bb on aa.id=bb.parentid group by bb.material) xx on xx.date = a.date and xx.material=b.materialA,B表的数据都有上万条。上面的写法速度很慢,求一个高效率的sql。
解决方案 »
- .net开发出现(提供程序与Oracle的客户机版本不兼容)。
- oracle dblink小问题
- 我更换了一台新的服务器,该机上现只有操作系统,如何把旧服务器上的oracle 10g迁移到新的服务器上,请高人赐教,谢谢!
- 如何设计数据量大的表,可以提高查询效率?
- ORACLE 存储过程中select语句的where条件带IF判断,怎么写?
- 在vbscript的asp页里面,如果显示orcal的“今日”
- 写ORACLE的存储过程不能用else if?
- 在sqlplus 中如何查询数据库中的存储过程和job!
- 请教查询语句
- oracle不能自动启动
- 请教一条基础试题,帮忙解答下。
- 如何在一个表中按时间顺序查找指定位置的记录
select a.date, b.material, row_number() over(partition by b.material order by a.date desc) rn
from a,b
where a.id = b.parentid )
where rn = 1;select max(a.date), b.material
from a,b
where a.id = b.parentid
group by b.material;
from a,b
where a.id = b.parentid
group by b.material;
select b.material,Max(a.date) from B b,A a where a.id=b.parentid group by a.material