SQL Query to find the collections Hierarchy
WITH folderHierarchy (CollectionID,[Name],ParentCollectionID,[Path])
AS
(  
      SELECT 
            CollectionID, 
            [Name], 
            ParentCollectionID,
            CAST('/'+[Name]+'/' AS VARCHAR(MAX)) AS [Path]
      FROM
            (SELECT 
                  CollectionID, 
                  [Name], 
                  ParentCollectionID 
             FROM v_Collection
                  INNER JOIN v_CollectToSubCollect 
                  ON v_Collection.CollectionID = v_CollectToSubCollect.SubCollectionID) AS V_1
      WHERE
            ParentCollectionID = 'COLLROOT'  
    UNION ALL
   SELECT
      child.CollectionID,
      child.Name,
      child.ParentCollectionID,
      parent.[Path]+child.[Name]+'/' AS [Path]
   FROM
      (SELECT 
                  CollectionID, 
                  [Name], 
                  ParentCollectionID
             FROM v_Collection
                  INNER JOIN v_CollectToSubCollect 
                  ON v_Collection.CollectionID = v_CollectToSubCollect.SubCollectionID) AS child
      INNER JOIN folderHierarchy AS parent
         ON parent.CollectionID = child.ParentCollectionID
)
SELECT 
   fldr.[Path],
   fldr.[Name],
   fldr.CollectionID  
FROM
   folderHierarchy AS fldr  
0 comments:
Post a Comment