13
मैं एक पदानुक्रमित डेटा मॉडल में दिए गए रिकॉर्ड के सभी बच्चों को पा सकता हूं (नीचे कोड देखें) लेकिन मुझे यकीन नहीं है कि किसी दिए गए चाइल्ड आईडी के साथ माता-पिता/बाल श्रृंखला का बैक अप कैसे लें। क्या कोई मुझे यह समझने के लिए सही दिशा में इंगित कर सकता है कि यह कैसे करें? क्या यह लिंक से एसक्यूएल में भी संभव है?सीटीई एक पदानुक्रम का बैक अप लेने के लिए?
WITH TaskHierarchy (TaskID, [Subject], ParentID, HierarchyLevel, HierarchyPath) AS
(
-- Base case
SELECT
TaskID,
[Subject],
ParentID,
1 as HierarchyLevel,
CONVERT(VARCHAR(MAX),'/') AS HierarchyPath
FROM Task
WHERE TaskID = 2
UNION ALL
-- Recursive step
SELECT
t.TaskID,
t.Subject,
t.ParentID,
th.HierarchyLevel + 1 AS HierarchyLevel,
CONVERT(varchar(MAX),th.HierarchyPath + CONVERT(VARCHAR(32),t.ParentID) + '/') AS HierarchyPath
FROM Task t
INNER JOIN TaskHierarchy th ON
t.ParentID = th.TaskID
)
SELECT *
FROM TaskHierarchy
ORDER BY HierarchyLevel, [Subject]
धन्यवाद! यह मुझे घंटे बचा लिया है! –