temsil Yalnızca seçilen düğümleri:Yinelemeli Sorgu - yaprak düğümleri aktif verileri aşağıdaki özyinelemeli sorgu Verilen
WITH DepartmentHierarchy (DepartmentID, Name, IsInactive, IsSpecial, ParentId, HierarchyLevel) AS
(
-- Base case
SELECT
DepartmentId,
Name,
IsInactive,
IsSpecial,
ParentId,
1 as HierarchyLevel
FROM StoreDepartment
WHERE ParentId IS NULL
UNION ALL
-- Recursive step
SELECT
d.DepartmentId,
d.Name,
d.IsInactive,
d.IsSpecial,
d.ParentId,
dh.HierarchyLevel + 1 AS HierarchyLevel
FROM StoreDepartment d
INNER JOIN DepartmentHierarchy dh ON
d.ParentId = dh.DepartmentId
) SELECT * FROM DepartmentHierarchy
Şöyle verileri seçmek mümkün duyuyorum: Ayrıca
DepartmentId, Name, IsInactive, IsSpecial, ParentId, HeirarchyLevel
1, Store, 0, 0, NULL, 1
2, Main Department 1, 0, 1, 2
3, Main Department 2, 0, 1, 2
4, Sub For Main 1, 0, 2, 3
, bir farz tablosu, DepartmentId ve ItemId (ex: DepartmentItemRelationship) ile var. Bölüm heirarşisinden gelen yaprak düğümleri buradaki öğelerle eşleştirilir.
Yinelemeli sorgum, yalnızca bölüm/öğe ilişkisi tablosundaki bir eşleşme ile en az bir yaprak düğümü içeren düğümleri (herhangi bir düzeyde) döndürmesini istiyorum. Bu düğümler 6 veya 7 seviye aşağı olabilir. Bu nedenle, bu soruyu içerdiğinden emin olmak için sorgumu nasıl değiştireceğimi bilmiyorum.
sayesinde Kyle
Kyle, 6. düzeydeki gereksinimi karşılayan bir yaprak düğümünüz varsa, o düğümün üstündeki 5 bölümü göstermek ister misiniz? –