Sql Recursivo Como ?

10/04/2007 - 23:22 por Mauricio Pulla | Informe spam
Hola.

Tengo la siguiente tabla de Itemes.

Item
iItemId Int, cItemId Char(15), cDescripcion VarChar(80), iGrupo Int, iParent
Int

iItemId cItemId cDescripcion iGrupo iParent
1 01 Grupo 1 1
0
2 02 Grupo 2 1
0
3 01 Grupo 3 1
0
4 0101 SubGrupo 0101 1 1
5 0102 SubGrupo 0102 1 1
6 01010001 Item 01010001 0 4
7 010201 SubGrupo 010201 1 4
8 0102010001 Item 010201 0 7
9 0102010002 Item 010202 0 7
10 0102010003 Item 010203 0 7
11 01020101 Grupo 01020101 1 7
12 0102010101 Item 0102010101 0 11
13 01010002 Item 01010002 0 4
14 01010003 Item 01010003 0 4
15 01010004 Item 01010004 0 4
16 01010005 Item 01010005 0 4
17 0102010102 Item 0102010102 0 11

Necesito crear un sql que muestre por ejemplo el registro No.:7 y todos los
resgistro que se relacionan de forma directa e indirecta con el:

iItemId cItemId cDescripcion
7 010201 SubGrupo 010201 1 4
8 0102010001 Item 010201 0 7
9 0102010002 Item 010202 0 7
10 0102010003 Item 010203 0 7
11 01020101 Grupo 01020101 1 7
12 0102010101 Item 0102010101 0 11

17 0102010102 Item 0102010102 0 11

Seria muy facil:
Select * From Item Where substring(cItemId, 1, 4) = '010201'
Si es que la codificación seria automatica, si la codificacion se la da
manualmente o por codigo de barras ya no seria factible este sql.

Otro Sql seria
Select * From Item Where iItemId = 7
Union
Select * From Item Where iParent = 7

Pero solo traeria:

iItemId cItemId cDescripcion iGrupo iParent
7 010201 SubGrupo 010201 1 4
8 0102010001 Item 010201 0 7
9 0102010002 Item 010202 0 7
10 0102010003 Item 010203 0 7
11 01020101 Grupo 01020101 1 7

y los restantes registros tienen como iParent al registro 11 que depende del
regsitro 7
iItemId cItemId cDescripcion iGrupo iParent
12 0102010101 Item 0102010101 0 11
17 0102010102 Item 0102010102 0 11

El problema es algo complejo ya que el usuario puede crear los niveles que
creyera conveniente, y cItemId puede tener codigo de barras o caracteres que
no tengan nada que ver con el registro padre.

En todo caso espero su ayuda...

Saludos cordiales.
Mauricio Pulla
Cuenca-Ecuador

Preguntas similare

Leer las respuestas

#6 jmauriciopb
11/04/2007 - 16:33 | Informe spam
Vaya, cuenta información, me sorprendieron.

Muy agradecido compañeros.

Saludos cordiales.
Mauricio Pulla
Cuenca-Ecuador
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida