에 삽입하면 같은 (SQL 서버 2005)SQL 서버 2005 - CTE는 값을 유지하고 데이터 세트
pairID childID parentID
0 1 2
1 2 3
2 3 4
같은 테이블이 있다고 가정하자 그리고 당신은이 데이터 집합 돌려 CTE 있습니다
pairID childID parentID level
0 1 2 2
1 2 3 1
2 3 4 0
을
pairID childID parentID level
0 1 2 2
1 1 3 1
2 1 4 0
을 그래서 기본적으로 :이 결과는 대신 설정 얻을 것이다 있도록 초기 자식 ID를 저장하려면 어떻게
제가 ... 원래 자식 ID를 유지하고 대신 다른 것을 반환하고있는 중이 야
이 완벽하게 작동 현재까지 CTE 쿼리입니다 :
WITH TESTER AS (SELECT a.PairID,
a.ChildID,
a.ParentID,
0 AS Level
FROM
BusinessHierarchy AS a
LEFT OUTER JOIN BusinessHierarchy AS a2
ON a.ParentID = a2.ChildID
WHERE (a2.PairID IS NULL)
UNION ALL
SELECT b.PairID, b.ChildID, b.ParentID, oh.Level + 1 AS Level
FROM BusinessHierarchy AS b INNER JOIN
TESTER AS oh ON b.ParentID = oh.ChildID)
SELECT PairID, ChildID, ParentID, Level
FROM TESTER AS x
ORDER BY Level, ChildID, ParentID
이 작업은 한 번 발생하지 않습니다. @StartingID의 초기 채우기는? 서로 다른 계층 구조 그룹은 어떻게됩니까? – flavour404
한 번만 발생합니다. 그 이상의 일이 일어나기를 원한다면, 우리는 당신이 가지고있는 것에 대해 당신이 가지고있는 것과 당신이 그것을하고 싶은 것에 대해 더 많은 정보를 주어야만합니다. –