rohabu
12/23/2013 - 10:02 AM

Zeigt den Pfad zu einer Collection deren ID bekannt sein muss.

Zeigt den Pfad zu einer Collection deren ID bekannt sein muss.

DECLARE @CollectionID AS varchar(8) DECLARE @Path AS varchar(2000)
SET @CollectionID = 'D010C0ED' ;

 WITH colCTE (ROW, collectionID, Name, parentCollID) AS
  ( SELECT 1 ,
           sub.subCollectionID ,
           col.Name ,
           sub.parentCollectionID
   FROM v_CollectToSubCollect sub
   INNER JOIN v_Collection col ON sub.subCollectionID = col.CollectionID
   WHERE col.CollectionID = @CollectionID
   UNION ALL SELECT cte.ROW + 1 ,
                              sub.subCollectionID ,
                              col.Name ,
                              sub.parentCollectionID
   FROM v_CollectToSubCollect sub
   INNER JOIN v_Collection col ON sub.subCollectionID = col.CollectionID
   INNER JOIN colCTE cte ON cte.parentCollID = sub.subCollectionID)
SELECT @Path = COALESCE(@Path + '\', '') + Name from colCTE WHERE row > 1 ORDER BY row DESC

SELECT
 @CollectionID AS 'CollectionID'
 ,col.Name,
 CASE
  WHEN @Path IS NULL THEN 'ROOT'
  ELSE @Path
 END AS 'Path'
FROM v_Collection col
WHERE CollectionID = @CollectionID