Buenos días a tod@s:
Tengo una tabla unidades con dos campos idUnidad(autonumerico) y
idPadre(Long). Más o menos así:
idUnidad idPadre
1 0
2 0
3 1
4 1
5 2
6 3
7 3
8 7
9 7
De tal forma que 1 es padre de 3 y de 4, 3 es padre de 6 y 7 y 7 es padre de
8
|6
|3| |8
1| |7|9
|4
Aunque está tabla no va a ser en principio muy grande ni va a haber
relaciones de muchas generaciones (no más de 4) me gustaría tener un SP que
me devolviera todos los hijos de una unidad determinada. Con la unidad 7 no
hay problema porque solo tiene una generación de hijos: Select idUnidad from
unidades where idunidad =@idUnidad or idPadre = @idUnidad.
Pero claro cuando quiero saber todos los descendientes de 3 la cosa no me
parece tan sencilla. ¿Hay alguna forma de hacerlo?.
Como esto no me salía tenía pensado llevarme el recordset con todas la
unidades hasta el cliente y allí tratarlo con alguna función recursiva y que
solo le permitiera ver los descendientes de la unida a la que él pertenece.
¿Me pueden aconsejar alguna estrategia mejor?. ¿Debería añadir un tercer
campo "LibroFamilia" (Varchar(50)) y rellenarlo mediante un trigger
idUnidad idPadre LibroFamilia
1 0
2 0
3 1 13
4 1 14
5 2 25
6 3 136
7 3 137
8 7 1378
9 7 1379
¿Debería recurrir a SQL Dinamico?
De momento lo único que tengo claro es que tengo que preguntar a los que
saben más que yo
Muchas gracias por su tiempo
Leer las respuestas