日期:2014-05-19  浏览次数:20538 次

关于父子维表的问题!!!急
有机构联行表yinghang表结构如下:
      [inst_no]   Char(8)   NOT   NULL   PRIMARY   KEY,   (机构号)
      inst_name   Char(60),     (机构名)
      inst_merg_no   Char(248)     (子机构联行号)
例如:机构号         机构名                                   子代机构联行号
            08750550,中国银行总行营业部,08380188087695900835719908359101
            08769590,中国银行北京分行,NULL
那么机构号08750550是08769590的总行。

建一存储过程yinghang,根据上面的yinghang表的数据生成父子维表bank的数据
bank表结构如下:
      [inst_no]   Char(8)   NOT   NULL   PRIMARY   KEY,(机构号)
      inst_name   Char(60),(机构名)
      inst_parent_no   Char(8),(父成员机构号)
      inst_level   smallint(机构级别)
 


------解决方案--------------------
我做出来了,你去你建的群里的空间上找找。
------解决方案--------------------
这里有一个列子给楼主参照一下
http://blog.csdn.net/roy_88/archive/2006/12/24/1458449.aspx
------解决方案--------------------
用临时表:
select * into #tmpyinghang from yinghang

while exists(select 1 from #tmpyinghang)
begin
insert into bank(inst_no,inst_name,inst_parent_no,inst_level)
select left(inst_merg_no,8),inst_name,(弄个函数算级别)
FROM #yinghang
delete #tmpyinghang where len(inst_merg_no) <=8
update #tmpyinghang set inst_merg_no=right(inst_merg_no,len(inst_merg_no)-8)
end