지금 현재는 4단계 까지는 잘 가지고 옵니다... 3단계가 넘어가는 조직은 가지고 오질 못합니다...
sp구문은 아래와 같습니다...
대표
임원실
관리부
영업부
솔루션사업부
밖에 못가져옵니다...
대표
임원실
관리부
영업부
솔루션사업부
관리팀
영업팀
개발팀
사업소
사업소1
이렇게 뽑와 와야 되는데요....
declare @table1 table
(
cg_key int,
cg_code1 VARCHAR(8),
cg_code2 VARCHAR(8),
cg_name varchar(20),
cg_priority INT,
cg_depth int --추가
)
insert @table1 select '1','1000','0','대표','1',0
insert @table1 select '2','1100','1000','임원실','1',1
insert @table1 select '3','1200','1100','관리부','2',2
insert @table1 select '4','1300','1200','관리팀','3',3
insert @table1 select '5','1400','1100','영업부','1',2
insert @table1 select '6','1500','1400','영업팀','1',3
insert @table1 select '7','1600','1100','솔루션사업부','1',2
insert @table1 select '8','1700','1600','개발팀','2',3
insert @table1 select '9','1800','1300','사업소','1',4
insert @table1 select '10','1900','1300','사업소1','2',4
DECLARE @exit INT
DECLARE @tmp_cg_code VARCHAR(8)
SET @exit = 0
SET @tmp_cg_code = '1000'--자신의 소속된 그룹정보 cg_code2 지정
--
SELECT * FROM @table1 a
WHERE
cg_code1 = @tmp_cg_code or
cg_code2 = @tmp_cg_code
or cg_code1 IN
(
SELECT cg_code1 FROM @table1 b
WHERE b.cg_code2 IN
(
SELECT cg_code1 FROM @table1
WHERE cg_code2 = @tmp_cg_code
)
)
ORDER BY a.cg_depth ASC,a.cg_priority ASC
|