首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求个SQL脚本,请各位大侠帮忙~解决方案

2012-05-23 
求个SQL脚本,请各位大侠帮忙~前提:有2张表,A1、A2,A1 中有 fields1,fields2 两个字段,A2 中有 num,fields1,

求个SQL脚本,请各位大侠帮忙~
前提:  
  有2张表,A1、A2,
  A1 中有 fields1,fields2 两个字段,
  A2 中有 num,fields1,fields2 三个字段;
  A2 表对A1的外键是 fields2 ;
  A2表对A1表为多对1的映射。

问题描述:

  先需要将A2表的字段 fields1 更新为 A1 表中的fields1;A1、A2表中的记录条数未知。
例如:A1表中有如下数据:
fields1 fields2 
001 abc
002 bcd
014 cde
...
A2表中有如下数据:
num fields1 fields2 
1 0 abc
2 1 abc
3 1 abc
4 0 bcd
5 0 bcd
6 0 cde 
.....
A2表更新结果如下:
num fields1 fields2 
1 001 abc
2 001 abc
3 001 abc
4 002 bcd
5 002 bcd
6 014 cde 

PS:谢谢各位大侠啦
   




[解决办法]
update A2 t set t.fields1 =A1.fields1 WHERE t.fields2 =(SELECT fields2 FROM A1)
[解决办法]

SQL code
create or replace procedure update_Job asbegin  for varCode in (select a.fields1,a.fields2 from A1 a) loop      for varStr in (select a.num,a.fields1,a.fields2 from A2 a        where a.fields2 = varCode.Fields2 and a.fields1 != varCode.Fields1) loop        update A2 t           set t.fields1 = varCode.Fields1         where t.num = varStr.Num;        commit;      end loop;  end loop;end update_Job; 

热点排行