![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
16/02/2008, 13:58
|
![Avatar de Gabo77](http://static.forosdelweb.com/customavatars/avatar159993_1.gif) | | | Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años, 2 meses Puntos: 6 | |
Re: Ayuda para una consulta sql Si lo quieres concatenado, entonces en un procedimiento almacenado igual puedes hacer algo como esto...
Código:
Create Prcodeure Sp_ObtenerhijosPorPadre
(
@IdPadre As Integer
)
As
Create Table #Padres
(
IdPadre Integer,
Nombre VarChar(50),
Hijos VarChar(2000),
Procesado Bit
)
Declare @IdPadre As Integer,
@Hijos As VarChar(2000)
Insert Into #Padres
Select IdPadre, NombreP, '', 0
From TablaPadres
Select Top 1 @IdPadre = IdPadre
From #Padres
Where Procesado = 0
While @IdPadre Is Not Null Begin
--Recuperar a los hijos concatenados
Set @hijos = ''
Select @hijos = @hijos + NombreH
From Tablahijo
Where IdPadre = @IdPadre
--Actualizamos los hijos encontrados a la tabla de padres
Update #Padres
Set Hijos = @Hijos,
Procesado = 1
Where IdPadre = @IdPadre
--Reiniciar la variable @IdPadre
Set @IdPadre = Null
--Recuperar al siguiente padre
Select Top 1 @IdPadre = IdPadre
From #Padres
Where Procesado = 0
End
--Desplegar el resultado obtenido
Select IdPadre, Nombre, Hijos
From #Padres
--Destruir la temporal
Drop Table #Padres
Go
Espero que te sirva!
Saludos!
__________________ Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros.... |