日期:2014-05-18 浏览次数:20543 次
declare @A表 table (id INT IDENTITY,parentid int,name varchar(10),fullname varchar(33))
insert into @A表
select null,'总部','总部' union all
select 1,'广州分公司','总部>广州分公司' union all
select 2,'人事部','总部>广州分公司>人事部' union all
select null,'东莞分公司','总部>东莞分公司' union all
select 4,'技术部','总部>东莞分公司>技术部' union all
SELECT 5,'技术支持部','总部>东莞分公司>技术部>技术支持部'
declare @B表 table (id INT IDENTITY,parentid int,groupname varchar(20),memo varchar(30))
insert into @B表
select null,'广州分公司','广州分公司' union all
select 1,'人事部','广州分公司>人事部' union all
select null,'中山分公司','中山分公司' union all
select 3,'开发部','中山分公司>开发部'
insert into @B表(parentid,groupname,memo)
select a.parentid,a.name,replace(a.fullname,'总部>','') from @a表 a left join @b表 b
on 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           技术支持部                东莞分公司>技术部>技术支持部
*/