당신의 매니저는 누구인가요?
이번 연습에서는 IT 조직의 데이터를 담은 employee 테이블을 사용합니다. 이 테이블에는 ID(직원의 ID), Name(직원 이름), Supervisor(상사의 ID) 필드가 있습니다.
이 IT 조직은 여러 역할과 레벨로 구성되어 있어요.

이 조직에는 한 명의 IT 디렉터가 있습니다(ID=1, Heinz Griesser, Supervisor=0). 이 디렉터 아래에 많은 하위 직원이 있어요. IT 디렉터 아래에는 IT 아키텍처 매니저가 있습니다(ID=10, Andreas Sternig, Supervisor=1). 이 매니저에게는 세 명의 하위 직원이 있습니다. Andreas Sternig의 경우 Supervisor=1이며, 이는 IT 디렉터의 ID입니다.
먼저 이런 질문에 답해 보겠습니다: 각 직원의 상사는 누구인가요?
이 문제는 재귀적으로 데이터를 조회하여 해결할 거예요.
이 연습은 강의의 일부입니다
SQL Server에서의 계층형 및 재귀 쿼리
연습 안내
- 이름이
employee_hierarchy인 CTE를 생성하세요. - CTE의 초기 단계로 IT 디렉터의 정보를 선택하되, 그의
SupervisorID로 필터링하세요. - 매니저의 이름을 얻기 위해
employee와 조인을 수행하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Create the CTE employee_hierarchy
WITH ___ AS (
SELECT
ID,
NAME,
Supervisor
FROM employee
-- Start with the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor
FROM employee emp
JOIN employee_hierarchy
ON emp.Supervisor = employee_hierarchy.ID)
SELECT
cte.Name as EmployeeName,
emp.Name as ManagerName
FROM employee_hierarchy as cte
JOIN employee as emp
-- Perform the JOIN on Supervisor and ID
ON cte.___ = emp.___;