Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Select estructura jerarquica

Estas en el tema de Select estructura jerarquica en el foro de SQL Server en Foros del Web. Hola que tal estoy con consulta bastante compleja que no puedo resolver. Tengo una sola tabla llamada "Cuentas" con tres campos: Id pk autonumerico, Jerarquia ...
  #1 (permalink)  
Antiguo 07/12/2012, 09:12
Avatar de Huasi  
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 16 años, 11 meses
Puntos: 2
Select estructura jerarquica

Hola que tal estoy con consulta bastante compleja que no puedo resolver. Tengo una sola tabla llamada "Cuentas" con tres campos: Id pk autonumerico, Jerarquia string que ingresa el usuario y ParentId que me indica si la cuenta tiene padre. En caso de tener padre se le asigna el Id de una cuenta existente que justamente me señala que es el padre de lo contrario es Null. Necesito un select para buscar un registro por jerarquia y si existe obtener el registro siempre y cuando no sea padre.

Cuentas
Id int PK
Jerarquia nvarchar
ParentId int

Un ejemplo de como esta conformada la tabla, en este caso los registros que no son padres son los Id: 03 y 05

Id - Jerarquia - ParentId
01 - 1.00.00 - null
02 - 1.10.00 - 01
03 - 1.10.10 - 02
04 - 2.00.00 - null
05 - 2.10.00 - 04
  #2 (permalink)  
Antiguo 07/12/2012, 09:46
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Select estructura jerarquica

Código SQL:
Ver original
  1. SELECT *
  2. FROM MiTabla
  3. WHERE id NOT IN (SELECT ParentID FROM MiTabla WHERE ParentId IS NOT NULL);
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 07/12/2012, 09:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Select estructura jerarquica

Me lo ganaste gerireshef jejeje

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id VARCHAR(5),
  4. jerarquia VARCHAR(20),
  5. parentid VARCHAR(5)
  6. )
  7.  
  8.  
  9.  
  10. INSERT INTO #temp VALUES ('01','1.00.00',NULL)
  11. INSERT INTO #temp VALUES ('02','1.10.00','01')
  12. INSERT INTO #temp VALUES ('03','1.10.10','02')
  13. INSERT INTO #temp VALUES ('04','2.00.00',NULL)
  14. INSERT INTO #temp VALUES ('05','2.10.00','04')
  15.  
  16.  
  17. SELECT * FROM #temp WHERE id NOT IN (SELECT parentid FROM #temp WHERE parentid IS NOT NULL)

saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 07/12/2012, 09:55
Avatar de Huasi  
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Select estructura jerarquica

Resuelto, gracias a ambos!
  #5 (permalink)  
Antiguo 10/12/2012, 11:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Select estructura jerarquica

Aunque es bueno decir que ya sql server maneja los datos JERARQUICOS, saludos

http://msdn.microsoft.com/es-es/library/bb677173.aspx
__________________
MCTS Isaias Islas

Etiquetas: estructura, registro, select, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:39.