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

相同数据库根据条件将一个表的内容插入到另一个表中,该如何解决

2012-03-13 
相同数据库根据条件将一个表的内容插入到另一个表中现在A表和B表A表结构为:idparentidnamefullname1null总

相同数据库根据条件将一个表的内容插入到另一个表中
现在A表和B表

A表结构为:
id parentid name fullname
1 null 总部 总部
2 1 广州分公司 总部>广州分公司
3 2 人事部 总部>广州分公司>人事部
4 null 东莞分公司 总部>东莞分公司
5 4 技术部 总部>东莞分公司>技术部
6 5 技术支持部 总部>东莞分公司>技术部>技术支持部


B表结构为:
id parentid groupname memo
1 null 广州分公司 广州分公司
2 1 人事部 广州分公司>人事部
3 null 中山分公司 中山分公司
4 3 开发部 中山分公司>开发部

两个表如上所示
现需要将A表有而B表又没有的内容插入到B表,只要将A表的name和fullName插入到B表相应的groupname,memo里面,但是要将A表里面的总部去掉,因为B表的Memo没有总部,只有分部的内容,而且要将A表的Id,parentid的关系体现到B表里面来,A表到B表里面的新内容将自动编号,parentid要和id关联起来,最好用纯sql语句解决,其它方式也可参考,本人新手没有多少分,请高手不吝赐教,谢谢!

[解决办法]

SQL code
declare @A表 table (id INT IDENTITY,parentid int,name varchar(10),fullname varchar(33))insert into @A表select null,'总部','总部' union allselect 1,'广州分公司','总部>广州分公司' union allselect 2,'人事部','总部>广州分公司>人事部' union allselect null,'东莞分公司','总部>东莞分公司' union allselect 4,'技术部','总部>东莞分公司>技术部' union allSELECT 5,'技术支持部','总部>东莞分公司>技术部>技术支持部'declare @B表 table (id INT IDENTITY,parentid int,groupname varchar(20),memo varchar(30))insert into @B表select null,'广州分公司','广州分公司' union allselect 1,'人事部','广州分公司>人事部' union allselect null,'中山分公司','中山分公司' union allselect 3,'开发部','中山分公司>开发部'insert into @B表(parentid,groupname,memo)select a.parentid,a.name,replace(a.fullname,'总部>','') from @a表 a left join @b表 bon a.name=b.groupname where b.id is null and name<>'总部'select * from @b表/*id          parentid    groupname            memo----------- ----------- -------------------- ------------------------------1           NULL        广州分公司                广州分公司2           1           人事部                  广州分公司>人事部3           NULL        中山分公司                中山分公司4           3           开发部                  中山分公司>开发部5           NULL        东莞分公司                东莞分公司6           4           技术部                  东莞分公司>技术部7           5           技术支持部                东莞分公司>技术部>技术支持部*/ 

热点排行