Yöneticin kim?
Bu egzersizde, employee tablosunda sunulan bir BT organizasyonunun veri kümesini kullanacağız. Tabloda ID (çalışanın kimlik numarası), Name (çalışanın adı) ve Supervisor (yöneticinin kimlik numarası) alanları bulunur.
BT organizasyonu farklı rol ve seviyelerden oluşur.

Organizasyonda tek bir BT direktörü vardır (ID=1, Heinz Griesser, Supervisor=0) ve birçok ast çalışanı bulunur. BT direktörünün altında, üç ast çalışanı olan BT mimarisi yöneticisi yer alır (ID=10, Andreas Sternig, Supervisor=1). Andreas Sternig için Supervisor=1, yani BT direktörünün ID değeridir.
Önce şu soruyu yanıtlamak istiyoruz: Her çalışanın yöneticisi kim?
Bu sorunu veri kümesini özyinelemeli şekilde sorgulayarak çözeceğiz.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular
Egzersiz talimatları
employee_hierarchyadlı bir CTE oluştur.- CTE'nin ilk adımında, BT direktörünün bilgilerini onun
Supervisorkimliğine göre filtreleyerek seç. - Yöneticinin adını almak için
employeeile bir JOIN gerçekleştir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- 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.___;