Ayuda con consulta "ciclica"

27/07/2005 - 21:38 por SergioT | Informe spam
Hola

Tengo una tabla asi:

Cod descipcion CodPadre
1 Linea de items A 0
11 Sub Linea de A 1
111 Sub-Sub Linea de A 11
1111 Item verde 111
1112 Item Blanco 111
1113 Item Rojo 111
2 Linea de Items B 0
21 Sub linea de B 2
211 Item B-negro 21
212 Item B-Azul 21

Resulta que los niveles son variables y necesito construir una tabla asi:

Padre Padre1 Padre2 Padre3 Cod Item
0 0 0 0 1 Linea de
items A
0 0 0 1 11 Sub Linea
de A
0 0 1 11 111 Sub-Sub Linea
de A
0 1 11 111 1111 Item Verde
0 1 11 111 1112 Item Blanco
0 1 11 111 1113 Item Rojo
0 0 0 0 2 Linea de
items B
0 0 0 2 21 Sub Linea
de B
0 0 2 21 211 Item B-negro
0 0 2 21 212 Item B-Azul

Por tanto he logrado hacer una consulta que obtiene el resultado pero no me
gusta por que limita la cantidad de niveles posibles es algo así:

SELECT T.Cod,T.Descripcion, T, T1.cod,T2.Cod,T3.Cod,
T1.Descripcion,T2.Descripcion,T3.Descripcion
FROM T left join ( select * from T ) T1
ON T.Padre=T1.Cod
LEFT JOIN ( select * from T ) T2
ON T1.Padre=T2.cod
LEFT JOIN ( select * from T ) T3
ON T2Padre=T3cod

Hay alguna otra forma de hacerlo de manera que las columnas del resultado
sean variables???? o alguna otra manera que aunque limite la cantidad de
columanas resultantes ( igual a como lo tengo) sea mas optima???

Necesito esto por culpa del CrystalReports ya que necesito tener los cortes
de control en el reporte y para cada corte de control se necesita un campo.
O si saben de alguna otra forma de resolver liustados jerarquicos les
agradeceria me den ideas

GRACIAS POR SU TIEMPO
Salu2
Sergio

Preguntas similare

Leer las respuestas

#1 Maxi
27/07/2005 - 22:23 | Informe spam
Hola, ufff en sql 2005 esto lo puedes hacer de forma muy simple :-) pero en
sql 2000 es bastante complicado. Te recomiendo que vayas al portal de Miguel
(www.portalsql.com) donde encontraras temas relacionados a Pivot Tables

Un abrazo


Salu2
Maxi


"SergioT" escribió en el mensaje
news:
Hola

Tengo una tabla asi:

Cod descipcion CodPadre
1 Linea de items A 0
11 Sub Linea de A 1
111 Sub-Sub Linea de A 11
1111 Item verde 111
1112 Item Blanco 111
1113 Item Rojo 111
2 Linea de Items B 0
21 Sub linea de B 2
211 Item B-negro 21
212 Item B-Azul 21

Resulta que los niveles son variables y necesito construir una tabla asi:

Padre Padre1 Padre2 Padre3 Cod Item
0 0 0 0 1 Linea
de items A
0 0 0 1 11 Sub Linea
de A
0 0 1 11 111 Sub-Sub
Linea de A
0 1 11 111 1111 Item Verde
0 1 11 111 1112 Item Blanco
0 1 11 111 1113 Item Rojo
0 0 0 0 2 Linea de
items B
0 0 0 2 21 Sub Linea
de B
0 0 2 21 211 Item B-negro
0 0 2 21 212 Item B-Azul

Por tanto he logrado hacer una consulta que obtiene el resultado pero no
me gusta por que limita la cantidad de niveles posibles es algo así:

SELECT T.Cod,T.Descripcion, T, T1.cod,T2.Cod,T3.Cod,
T1.Descripcion,T2.Descripcion,T3.Descripcion
FROM T left join ( select * from T ) T1
ON T.Padre=T1.Cod
LEFT JOIN ( select * from T ) T2
ON T1.Padre=T2.cod
LEFT JOIN ( select * from T ) T3
ON T2Padre=T3cod

Hay alguna otra forma de hacerlo de manera que las columnas del resultado
sean variables???? o alguna otra manera que aunque limite la cantidad de
columanas resultantes ( igual a como lo tengo) sea mas optima???

Necesito esto por culpa del CrystalReports ya que necesito tener los
cortes de control en el reporte y para cada corte de control se necesita
un campo. O si saben de alguna otra forma de resolver liustados
jerarquicos les agradeceria me den ideas

GRACIAS POR SU TIEMPO
Salu2
Sergio




Respuesta Responder a este mensaje
#2 SergioT
28/07/2005 - 00:52 | Informe spam
OK Maxi le voy a dar un vistaso gracias por reponder

No se si sabes de Crystal reports? en realidad esta complicacion es para
poder crear un reportes de varios niveles de sub totales, y por eso necesito
construir esta tabla que indique la jerarquia completa de un item en la
clasificacion del Stock.

salu2
Sergio


"Maxi" wrote in message
news:%
Hola, ufff en sql 2005 esto lo puedes hacer de forma muy simple :-) pero
en sql 2000 es bastante complicado. Te recomiendo que vayas al portal de
Miguel (www.portalsql.com) donde encontraras temas relacionados a Pivot
Tables

Un abrazo


Salu2
Maxi


"SergioT" escribió en el mensaje
news:
Hola

Tengo una tabla asi:

Cod descipcion CodPadre
1 Linea de items A 0
11 Sub Linea de A 1
111 Sub-Sub Linea de A 11
1111 Item verde 111
1112 Item Blanco 111
1113 Item Rojo 111
2 Linea de Items B 0
21 Sub linea de B 2
211 Item B-negro 21
212 Item B-Azul 21

Resulta que los niveles son variables y necesito construir una tabla asi:

Padre Padre1 Padre2 Padre3 Cod Item
0 0 0 0 1 Linea
de items A
0 0 0 1 11 Sub
Linea de A
0 0 1 11 111 Sub-Sub
Linea de A
0 1 11 111 1111 Item Verde
0 1 11 111 1112 Item Blanco
0 1 11 111 1113 Item Rojo
0 0 0 0 2 Linea de
items B
0 0 0 2 21 Sub Linea
de B
0 0 2 21 211 Item
B-negro
0 0 2 21 212 Item B-Azul

Por tanto he logrado hacer una consulta que obtiene el resultado pero no
me gusta por que limita la cantidad de niveles posibles es algo así:

SELECT T.Cod,T.Descripcion, T, T1.cod,T2.Cod,T3.Cod,
T1.Descripcion,T2.Descripcion,T3.Descripcion
FROM T left join ( select * from T ) T1
ON T.Padre=T1.Cod
LEFT JOIN ( select * from T ) T2
ON T1.Padre=T2.cod
LEFT JOIN ( select * from T ) T3
ON T2Padre=T3cod

Hay alguna otra forma de hacerlo de manera que las columnas del resultado
sean variables???? o alguna otra manera que aunque limite la cantidad de
columanas resultantes ( igual a como lo tengo) sea mas optima???

Necesito esto por culpa del CrystalReports ya que necesito tener los
cortes de control en el reporte y para cada corte de control se necesita
un campo. O si saben de alguna otra forma de resolver liustados
jerarquicos les agradeceria me den ideas

GRACIAS POR SU TIEMPO
Salu2
Sergio








Respuesta Responder a este mensaje
#3 Maxi
28/07/2005 - 14:33 | Informe spam
Nop, de CR no se mucho que digamos pero si estas cosas las puedes hacer del
lado del cliente mucho mejor :-)


Salu2
Maxi


"SergioT" escribió en el mensaje
news:
OK Maxi le voy a dar un vistaso gracias por reponder

No se si sabes de Crystal reports? en realidad esta complicacion es para
poder crear un reportes de varios niveles de sub totales, y por eso
necesito construir esta tabla que indique la jerarquia completa de un item
en la clasificacion del Stock.

salu2
Sergio


"Maxi" wrote in message
news:%
Hola, ufff en sql 2005 esto lo puedes hacer de forma muy simple :-) pero
en sql 2000 es bastante complicado. Te recomiendo que vayas al portal de
Miguel (www.portalsql.com) donde encontraras temas relacionados a Pivot
Tables

Un abrazo


Salu2
Maxi


"SergioT" escribió en el mensaje
news:
Hola

Tengo una tabla asi:

Cod descipcion CodPadre
1 Linea de items A 0
11 Sub Linea de A 1
111 Sub-Sub Linea de A 11
1111 Item verde 111
1112 Item Blanco 111
1113 Item Rojo 111
2 Linea de Items B 0
21 Sub linea de B 2
211 Item B-negro 21
212 Item B-Azul 21

Resulta que los niveles son variables y necesito construir una tabla
asi:

Padre Padre1 Padre2 Padre3 Cod Item
0 0 0 0 1 Linea
de items A
0 0 0 1 11 Sub
Linea de A
0 0 1 11 111 Sub-Sub
Linea de A
0 1 11 111 1111 Item Verde
0 1 11 111 1112 Item Blanco
0 1 11 111 1113 Item Rojo
0 0 0 0 2 Linea
de items B
0 0 0 2 21 Sub
Linea de B
0 0 2 21 211 Item
B-negro
0 0 2 21 212 Item B-Azul

Por tanto he logrado hacer una consulta que obtiene el resultado pero no
me gusta por que limita la cantidad de niveles posibles es algo así:

SELECT T.Cod,T.Descripcion, T, T1.cod,T2.Cod,T3.Cod,
T1.Descripcion,T2.Descripcion,T3.Descripcion
FROM T left join ( select * from T ) T1
ON T.Padre=T1.Cod
LEFT JOIN ( select * from T ) T2
ON T1.Padre=T2.cod
LEFT JOIN ( select * from T ) T3
ON T2Padre=T3cod

Hay alguna otra forma de hacerlo de manera que las columnas del
resultado sean variables???? o alguna otra manera que aunque limite la
cantidad de columanas resultantes ( igual a como lo tengo) sea mas
optima???

Necesito esto por culpa del CrystalReports ya que necesito tener los
cortes de control en el reporte y para cada corte de control se necesita
un campo. O si saben de alguna otra forma de resolver liustados
jerarquicos les agradeceria me den ideas

GRACIAS POR SU TIEMPO
Salu2
Sergio












email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida