Tengo una tabla llamada Categoryque tiene una columna llamada CategoryID. Hay una columna de referencia en la misma tabla llamada fParentCategoryID.
Necesito obtener todos los ID de categoría y sus ID de subcategoría separados por comas. Por ejemplo: si el ID de categoría principal de 10 es 1 y si el ID de categoría principal de 20 es 10, cuando imprimo el ID de categoría 20 necesito imprimir 1 y 10 como sus padres en valores separados por comas.
Probé el siguiente consulta, pero me sale NULLde ParChildla columna. Por favor ayuda.
;WITH
  cteReports 
  AS
(
SELECT c.CategoryID,
       c.fParentCategoryID,
       [level] = 1,
       ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX))
FROM   retail.Category c
WHERE c.fParentCategoryID is NULL
UNION ALL
SELECT c.CategoryID,
       c.fParentCategoryID,
       [level] + 1,
       ParChild = ParChild + ',' + CAST(c.CategoryID AS VARCHAR(200))
FROM   retail.Category c
        JOIN cteReports r
            ON  c.fParentCategoryID = r.CategoryID
)
SELECT *
FROM   cteReports cr 
use este script para crear y completar la tabla. (nota: hay un límite de 30K para el cuerpo de la pregunta ... Así que tuve que usar pastebin para copiar su código y hacer referencia a él)
fuente
