Tengo una tabla llamada Category
que 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 NULL
de ParChild
la 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