आपके मैनेजर कौन हैं?
इस अभ्यास में, हम IT-organization के उस डेटासेट का उपयोग करेंगे जो employee टेबल में दिया गया है। इस टेबल में फ़ील्ड हैं: ID (कर्मचारी का ID नंबर), Name (कर्मचारी का नाम), और Supervisor (सुपरवाइज़र का ID नंबर)।
IT-organization अलग-अलग भूमिकाओं और स्तरों से बनी है।

इस organization में एक IT डायरेक्टर है (ID=1, Heinz Griesser, Supervisor=0) जिसके अधीन कई कर्मचारी काम करते हैं। IT डायरेक्टर के नीचे IT आर्किटेक्चर मैनेजर है (ID=10, Andreas Sternig, Supervisor=1) जिसके अधीन तीन कर्मचारी हैं। Andreas Sternig के लिए Supervisor=1 है, जो IT-Director का ID है।
सबसे पहले, हम यह प्रश्न सुलझाना चाहते हैं: हर कर्मचारी का सुपरवाइज़र कौन है?
हम इस समस्या को डेटासेट पर रिकर्सिव क्वेरी चलाकर हल करेंगे।
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Hierarchical और Recursive Queries
अभ्यास निर्देश
employee_hierarchyनाम से एक CTE बनाएँ।- CTE के शुरुआती चरण में IT डायरेक्टर की जानकारी चुनें, जिसके लिए उनके
SupervisorID पर फ़िल्टर करें। - मैनेजर का नाम प्राप्त करने के लिए
employeeके साथ एक join करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- 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.___;