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

[0] Índice de Mensajes

Ir a la versión completa