Bases de Datos > SQL Server
Consulta Recursiva
(1/1)
EEC:
Alguien puede ayudarme a hacer la consulta recursiva de la tabla Dispositivos que cuenta con Id_Dispositivo, DescripcionDispositivo, ComponenteDispositivo.
El tema es que ComponenteDispositivo es otro dispositivo que tiene Dispositivo, osea por eso es recursivo
Y debe mostrar en forma de arbol.....
Me ayudan porfa!!!!
Gracias
LordKanabis:
Si pudieras ser algo más explícito de como es la tabla y la forma del resultado te pudieramos ayudar. :D
Saludos.
ElNapster:
Todo eso lo podrias meter a un SP y utilizar cursores que se se encarguen de realizar lo que tu buscas.
:comp:
Shiquilla:
Lo podrías lograr partiendo con una tabla de apoyo donde vayas insertando y marcando los datos que tienes.
Supongamos que dicha tabla tiene el ID del registro y un campo bTrabajo de tipo BIT (Cuando = 1 entonces ya se han insertado sus hijos)
Por ejemplo (Suponiendo que la tabla real se llama TABLADATOS):
--- Código: SQL ---DECLARE @Apoyo TABLE (idRegistro INT NOT NULL PRIMARY KEY, bTratado NOT NULL DEFAULT 0, bNuevo NOT NULL DEFAULT 1)INSERT INTO @Apoyo (idRegistro) VALUES (1) -- Aquí habría que hacer la primera INSERT (el/los padres de todos los demás)WHILE EXISTS (SELECT TOP 1 1 FROM @Apoyo WHERE bTratado = 0 AND bNuevo = 1)BEGIN UPDATE @Apoyo SET bNuevo = 0 WHERE bTratado = 0 INSERT INTO @Apoyo (idRegistro) SELECT idRegistro FROM TablaDatos A INNER JOIN @Apoyo B ON A.idSiguienteComponente = B.idRegistro WHERE B.bTratado = 0 AND B.bNuevo = 0 UPDATE @Apoyo SET bTratado = 1 WHERE bNuevo = 0END
Ya he hecho cosas de este estilo y este método va muy bien ya que puedes tener niveles infinitos, espero haberme explicado bien.
Saludos,
Navegación
Ir a la versión completa