Filtrado de arbol de nodos

07/03/2006 - 21:07 por CHAR72 | Informe spam
Hola, queria ver si me pueden ayudar con esta cuestion:

Tengo almacenado en una tabla un arbol de nodos con los campos: Nodo_ID,
Nombre, Padre_ID
y tengo otra tabla con los nodos solo a mostrar, como seria la forma para
traer solo el arbol de nodos filtrado, teniendo en cuenta que deberia
mostrar todos los nodos hijos de los nodos a mostrar?

Desde ya muchas gracias.

Saludos

Carlos

Preguntas similare

Leer las respuestas

#1 Maxi [Mvp]
08/03/2006 - 00:26 | Informe spam
Hola, primero seria muy bueno que nos muestres las estructuras y luego que
buscas hacer exactamente. Luego tambien es importante saber la version de
sql.


Saludos

-
Buenos Aires - Argentina
[Microsoft MVP SQL SERVER]
www.sqlgurus.org
"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:
Hola, queria ver si me pueden ayudar con esta cuestion:

Tengo almacenado en una tabla un arbol de nodos con los campos: Nodo_ID,
Nombre, Padre_ID
y tengo otra tabla con los nodos solo a mostrar, como seria la forma para
traer solo el arbol de nodos filtrado, teniendo en cuenta que deberia
mostrar todos los nodos hijos de los nodos a mostrar?

Desde ya muchas gracias.

Saludos

Carlos

Respuesta Responder a este mensaje
#2 CHAR72
08/03/2006 - 00:34 | Informe spam
Ejemplo:

Nodo_ID Nombre Padre_ID
1 Mundo 0
2 Europa 1
3 España 2

Eso daria una jerarquia:
Mundo
Europa
España


La otra tabla tiene los nodos a mostrar
Nodo_ID_a_Mostrar
-
2

Lo que tendria que mostrar es:

Europa
España


Sobre un SQL2000.

Saludos



"Maxi [Mvp]" escribió en el mensaje
news:
Hola, primero seria muy bueno que nos muestres las estructuras y luego que
buscas hacer exactamente. Luego tambien es importante saber la version de
sql.


Saludos

-
Buenos Aires - Argentina
[Microsoft MVP SQL SERVER]
www.sqlgurus.org
"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:
Hola, queria ver si me pueden ayudar con esta cuestion:

Tengo almacenado en una tabla un arbol de nodos con los campos: Nodo_ID,
Nombre, Padre_ID
y tengo otra tabla con los nodos solo a mostrar, como seria la forma para
traer solo el arbol de nodos filtrado, teniendo en cuenta que deberia
mostrar todos los nodos hijos de los nodos a mostrar?

Desde ya muchas gracias.

Saludos

Carlos





Respuesta Responder a este mensaje
#3 Gustavo Larriera [MVP]
08/03/2006 - 01:53 | Informe spam
Estudia estos artículos:

Working with hierarchical data in SQL Server databases
http://vyaskn.tripod.com/hierarchie...abases.htm

Using SQL Server 2000's User Defined Function to solve the Tree Problem
http://www.paragoncorporation.com/A...rticleID=9

More Trees & Hierarchies in SQL
http://www.sqlteam.com/item.asp?ItemIDˆ66





Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:ONyDy%
Ejemplo:

Nodo_ID Nombre Padre_ID
1 Mundo 0
2 Europa 1
3 España 2

Eso daria una jerarquia:
Mundo
Europa
España


La otra tabla tiene los nodos a mostrar
Nodo_ID_a_Mostrar
-
2

Lo que tendria que mostrar es:

Europa
España


Sobre un SQL2000.

Saludos



"Maxi [Mvp]" escribió en el mensaje
news:
Hola, primero seria muy bueno que nos muestres las estructuras y luego
que buscas hacer exactamente. Luego tambien es importante saber la
version de sql.


Saludos

-
Buenos Aires - Argentina
[Microsoft MVP SQL SERVER]
www.sqlgurus.org
"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:
Hola, queria ver si me pueden ayudar con esta cuestion:

Tengo almacenado en una tabla un arbol de nodos con los campos: Nodo_ID,
Nombre, Padre_ID
y tengo otra tabla con los nodos solo a mostrar, como seria la forma
para traer solo el arbol de nodos filtrado, teniendo en cuenta que
deberia mostrar todos los nodos hijos de los nodos a mostrar?

Desde ya muchas gracias.

Saludos

Carlos









Respuesta Responder a este mensaje
#4 Daniel A. Calvin
08/03/2006 - 02:08 | Informe spam
Hola Carlos

Te doy la solución tal como la implemente en una solución propia.

La situación es parecida a la tuya, lo unico que cambia es que la key en mi
caso es de dos campos, retorno toda la jerarquia que corresponde a una
aplicación desde un nodo determinado.

Si no lo podes adaptar a lo tuyo decime y por la tarde lo armo con tu tabla.

Saludos

Daniel Calvin


La estructura de la tabla:

CREATE TABLE [dbo].[APLayouts] (
[APGUID] [char] (38),
[APLGUID] [char] (38),
[APLayout] [varchar] (50) ,
[APLParentGUI] [char] (38),
[ISRoot] [bit] NOT NULL ,
[ISLeaf] [bit] NOT NULL ,
[REFOrden] [int] NOT NULL ,
[TS] [timestamp] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[APLayouts] ADD
CONSTRAINT [PK_APLayouts] PRIMARY KEY CLUSTERED
(
[APGUID],
[APLGUID]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[APLayouts] ADD
CONSTRAINT [FK_APLayouts_APLayouts] FOREIGN KEY
(
[APGUID],
[APLParentGUI]
) REFERENCES [dbo].[APLayouts] (
[APGUID],
[APLGUID]
),
CONSTRAINT [FK_APLayouts_Applications] FOREIGN KEY
(
[APGUID]
) REFERENCES [dbo].[Applications] (
[APGUID]
) ON UPDATE CASCADE
GO

El Store

CREATE PROCEDURE GetLayoutFromAPLGUID @APGUID char(38), @APLGUID char(38)
AS
DECLARE @APLayouts TABLE
(
APGUID char(38),
APLGUID char(38),
APLParentGUI char(38),
APLLayout char(50),
REFOrden int,
IOrden int
)
declare @iCount int


INSERT INTO @APLayouts
SELECT
APGUID,
APLGUID,
0,APLAyout,0,0
FROM
APLayouts
WHERE
APGUID= @APGUID AND APLGUID = @APLGUID

etc,...)
set @iCount=0
WHILE @@ROWCOUNT > 0
BEGIN
set @iCount=@iCount+1
INSERT INTO @APLayouts
SELECT
Ca.APGUID,
Ca.APLGUID,
Ca.APLParentGUI,
Ca.APLayout,
Ca.REFOrden,
@iCount as iOrden
FROM APLayouts Ca
WHERE
Ca.APLParentGUI IN (SELECT APLGUID FROM @APLayouts)
AND Ca.APLParentGUI NOT IN (SELECT APLParentGUI FROM @APLayouts)
Order by REFOrden
END
select * from @APLayouts



"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje
news:
Hola, queria ver si me pueden ayudar con esta cuestion:

Tengo almacenado en una tabla un arbol de nodos con los campos: Nodo_ID,
Nombre, Padre_ID
y tengo otra tabla con los nodos solo a mostrar, como seria la forma para
traer solo el arbol de nodos filtrado, teniendo en cuenta que deberia
mostrar todos los nodos hijos de los nodos a mostrar?

Desde ya muchas gracias.

Saludos

Carlos

Respuesta Responder a este mensaje
#5 Carlos Sacristán
08/03/2006 - 08:40 | Informe spam
Y en los BOL también hay un ejemplo de listar jerarquías. Busca el tema
"expandir jerarquías" y lo verás


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Gustavo Larriera [MVP]" escribió en el mensaje
news:#
Estudia estos artículos:

Working with hierarchical data in SQL Server databases
http://vyaskn.tripod.com/hierarchie...abases.htm

Using SQL Server 2000's User Defined Function to solve the Tree Problem
http://www.paragoncorporation.com/A...rticleID=9

More Trees & Hierarchies in SQL
http://www.sqlteam.com/item.asp?ItemIDˆ66





Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:ONyDy%
> Ejemplo:
>
> Nodo_ID Nombre Padre_ID
> 1 Mundo 0
> 2 Europa 1
> 3 España 2
>
> Eso daria una jerarquia:
> Mundo
> Europa
> España
>
>
> La otra tabla tiene los nodos a mostrar
> Nodo_ID_a_Mostrar
> -
> 2
>
> Lo que tendria que mostrar es:
>
> Europa
> España
>
>
> Sobre un SQL2000.
>
> Saludos
>
>
>
> "Maxi [Mvp]" escribió en el mensaje
> news:
>> Hola, primero seria muy bueno que nos muestres las estructuras y luego
>> que buscas hacer exactamente. Luego tambien es importante saber la
>> version de sql.
>>
>>
>> Saludos
>>
>> -
>> Buenos Aires - Argentina
>> [Microsoft MVP SQL SERVER]
>> www.sqlgurus.org
>> "CHAR72" <char72[nos pa m]@gmail.com> wrote in message
>> news:
>>> Hola, queria ver si me pueden ayudar con esta cuestion:
>>>
>>> Tengo almacenado en una tabla un arbol de nodos con los campos:


Nodo_ID,
>>> Nombre, Padre_ID
>>> y tengo otra tabla con los nodos solo a mostrar, como seria la forma
>>> para traer solo el arbol de nodos filtrado, teniendo en cuenta que
>>> deberia mostrar todos los nodos hijos de los nodos a mostrar?
>>>
>>> Desde ya muchas gracias.
>>>
>>> Saludos
>>>
>>> Carlos
>>>
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida