oracle 用B表数据更新A表

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:02:36
A表是班级表:班级ID,班级名name,班长monitor,联系电话tel
B表是人员表:人员ID,归属班级classId,人员名name,联系电话tel,更新时间upd
现在要从B表中选择upd比较晚,最好是有tel的一个人当A表中的班长,更新时把B表中的name和tel更新到A表中的monitor和tel
注:B表中的人员有一些人是同一个班级的,所以查出来同一个班级的人有不止一个(update时出现过查询多余一个行的提示)
有点乱
再补充下
现在就要求
查出B表中的随便一个人员(同一个班级的就只要一个)当A表中的班长,并把相应的name,tel更新到A表中

你的描述很混乱,首先你没有说清楚从B表中选择人当班长的条件,这样就没办法进行查询。其次,你A表和B表有没有关联呢?是根据班级ID关联还是根据归属班级classID关联呢

请看下面这个过程:

declare
cursor c is
select name,classid,tel,upd from b where A is not null ;
cursor d is
select distct 班级ID,name,班长monitor,联系电话tel from A

begin
for v_emp in c loop
for v_temp in d loop
if(v_temp.班级ID=v_emp.归属班级classid and v_emp.upd>v_temp.upd ) then
update A set 班长monitor=v_emp.人员名name,upd=v_emp.upd;
end if;
end loop;
commit;
end loop;
end;

直接执行就可以了,感觉可以赏点分哦,呵呵。