Estoy tratando de realizar lo que creo que es una recursión difícil utilizando un CTE es SQL Server 2008. Parece que no puedo entender esto.SQL Server 2008 CTE Recursion
En los ejemplos a continuación, puede suponer una profundidad fija de 3 ... nada será menor que eso. En la vida real, la profundidad es "más profunda" pero aún fija. En el ejemplo traté de simplificarlo.
Mis datos de entrada son como los de abajo.
ID PARENT_ID NAME DEPTH
------------------------------------------
1 NULL A 1
2 1 B 2
3 2 C 3
4 1 D 2
La salida de mi CTE debe ser la siguiente tabla.
LEVEL1_ID LEVEL2_ID LEVEL3_ID LEVEL1_NAME LEVEL2_NAME LEVEL3_NAME
--------------------------------------------------------------------------------
1 NULL NULL A NULL NULL
1 2 NULL A B NULL
1 2 3 A B C
1 4 NULL A D NULL
Si puedo conseguir las columnas con un diámetro en la salida Ciertamente puedo asignar a los nombres en una tabla de consulta.
Estoy abierto a otras formas de lograr esto también, incluido el uso de SSIS.
que no podía entender lo que la lógica que está solicitando al mirar en su salida. Creo que la última línea debe ser '/ B/D' porque la identificación principal de' D' es 2, es decir, 'B' – IsmailS
acaba de actualizar la pregunta. lo siento. – thomas
De nuevo lo mismo. En la fila # 4, ¿Por qué necesita Level1_ID como '1' cuando su ID padre es 2? – IsmailS