假设A表是一个员工表,B表为履历表,其中有一个字段B_Order为履历信息的顺序。
请问能否用一条sql语句找出A表中所有员工信息及B表中对应的最新的一条履历信息。
既用关联语句select * from A a,B b where a.id=b.id and .....
B表出来的只是一个人的最新的那条,既B_Order为最大值的那条。
请问能否用一条sql语句找出A表中所有员工信息及B表中对应的最新的一条履历信息。
既用关联语句select * from A a,B b where a.id=b.id and .....
B表出来的只是一个人的最新的那条,既B_Order为最大值的那条。
解决方案 »
- select查询出错single-row subquery returns more than one row
- Over(Partition By ..)??
- 请给为老手指点一下!!!
- [求助]请教一个关于循环更新的SQL问题
- TurboLinux下如何启动agent服务?或者说简单点,如何运行OMS
- oracle数据库问题
- 奇怪的问题dblink报0RA-12154:TNS :无法处理服务名错误,但TNSNAMES.ORA文件没有配置错,用相同的用户名,密码登陆数据库都没有问题
- 如何用decode函数进行范围判断
- decode的用法
- 我的硬盘装的windows2000,里面有oracle,怎样讲此硬盘放到别的电脑上,因为硬件不相同?
- 求VB语法与PLSQL语法对照表
- 请教一条SQL语句
FROM A
INNER JOIN (
SELECT FIRST_VALUE(B_Order) OVER (PARTITION BY ID ORDER BY B_Order DESC) AS MAX_B_Order,
ID
FROM B
) ON A.ID = B.ID AND B.MAX_B_Order = B.ID;
from A a,B b
where a.id=b.id
and b.B_Order||b.id =
(select max(B_Order)||id from B group by id) ;
或者
select *
from A a,B b
where a.id=b.id
and (b.B_Order,b.id) in
(select max(B_Order),id from B group by id) ;
from A a
where b.B_Order =
(select max(B_Order) from B b where a.id=b.id)这个可以吗?