Aquí está la estructura de ejemplo de la tabla:Cómo mostrar parentID recursiva en una sola columna en SQL
ID Name ParentID
-----------------------
1 Ancestor NULL
2 GrandFather 1
3 GrandMother 1
4 Child 3
Estoy intentando escribir una consulta que devolvería
ID Name Family
----------------------------
1 Ancestor
2 GrandFather Ancestor
3 GrandMother Ancestor
4 Child Ancestor^GrandMother
El complicado La parte es que quiero mostrar la familia de todas las filas y en orden descendente.
Si alguien me puede apuntar en la dirección correcta, sería apreciado :)
EDITAR :: Esta es la consulta real, pero sigue la misma idea. devuelve un error en la línea: marketparent.family + '^' + t2.marketGroupName porque no puede encontrar marketparent
WITH marketparent (marketGroupID,parentGroupID, marketGroupName,family)
AS
(
SELECT marketGroupID,
parentGroupID,
marketGroupName,
'' as family
FROM EVE.dbo.invMarketGroups
WHERE parentGroupID IS NULL
UNION ALL
SELECT t2.parentGroupID,
t2.marketGroupID,
t2.marketGroupName,
marketparent.family + '^'+ t2.marketGroupName
FROM EVE.dbo.invMarketGroups as t2
INNER JOIN marketparent as mp
ON mp.marketGroupID = t2.parentGroupID
)
-- Statement using the CTE
SELECT TOP 10 *
FROM marketparent;
La solución dependerá del DBMS que utilice. SQL Server, Oracle, MySQL o ....? –
estoy usando SQL Server 2008 – darthun08
Use el alias 'mp' en lugar de' marketparent'. –