BaşlayınÜcretsiz Başlayın

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.

Tüm hiyerarşinin bir bölümü

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

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • employee_hierarchy adlı bir CTE oluştur.
  • CTE'nin ilk adımında, BT direktörünün bilgilerini onun Supervisor kimliğine göre filtreleyerek seç.
  • Yöneticinin adını almak için employee ile bir JOIN gerçekleştir.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

-- 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.___;
Kodu Düzenle ve Çalıştır