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

Consulta Tabla autorelacionada

Estas en el tema de Consulta Tabla autorelacionada en el foro de Oracle en Foros del Web. Hola, por adelantado gracias por ayudarme con este dilema, no se que tan factible sea. Tengo la siguiente consulta: select p.pais_id,p.pais.name,d.reg_id,d.reg_name,c.extens ion,c2.extension from pais p ...
  #1 (permalink)  
Antiguo 10/05/2009, 23:30
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 22 años
Puntos: 1
Consulta Tabla autorelacionada

Hola, por adelantado gracias por ayudarme con este dilema, no se que tan factible sea.

Tengo la siguiente consulta:

select p.pais_id,p.pais.name,d.reg_id,d.reg_name,c.extens ion,c2.extension from
pais p
full join region d on d.pais = p.pais_id
full join campo c on c.region =d.reg_id
full join campo c2 on c2.parent = c.id
where p.enabled = 1

La tabla campo se autorelaciona asi misma pero cuando tengo datos anidados no salen en la consulta, como puedo solucionar esto.


Mil Gracias
__________________
"SJ
  #2 (permalink)  
Antiguo 11/05/2009, 20:30
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Consulta Tabla autorelacionada

no me puse a tratar de solucionar tu consulta pero para tablas "autorelacionadas" checate informacion sobre las clausulas "connect by" y "start with"
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 11/05/2009, 23:48
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 22 años
Puntos: 1
Respuesta: Consulta Tabla autorelacionada

Gracias kikolice, ahora tengo el siguiente problema:

Código sql:
Ver original
  1. SELECT cs.campaign_split_id,cs.name,csxc.extension,sr.split_rule_id,sr.name,sr.extension,sr.pm_rule_id,pm.pm_rule_node_id,pm.parent_rule_node_id,pm.logical_operator_id,pc.pm_condition_id,pc.inp_target_column_id,pc.relational_operator_id,csxc.mandatory,csxc.conditional,csxc.rank,csx.mandatory_dial,csxc.target_pattern
  2.  FROM
  3.  campaign_split_x_client csxc
  4.     FULL JOIN campaign_split cs ON cs.campaign_split_id = csxc.campaign_split_id
  5.     FULL JOIN campaign_split_x_split_rule csx ON csx.campaign_split_id = cs.campaign_split_id
  6.     FULL JOIN split_rule sr ON sr.split_rule_id = csx.split_rule_id
  7.     FULL JOIN (SELECT * FROM pm_rule_node START WITH parent_rule_node_id IS NULL  CONNECT BY prior pm_rule_node_id = parent_rule_node_id) pm ON pm.pm_rule_node_id >= sr.pm_rule_id
  8.     FULL JOIN pm_condition pc ON pc.parent_rule_node_id = pm.pm_rule_node_id
  9.                 WHERE csxc.client_id = 7698
  10.     ORDER BY csxc.rank,cs.name,sr.name ASC
donde esta el
Código sql:
Ver original
  1. SELECT * FROM pm_rule_node START WITH parent_rule_node_id IS NULL  CONNECT BY prior pm_rule_node_id = parent_rule_node_id
trate de reemplazarlo por
Código sql:
Ver original
  1. SELECT * FROM pm_rule_node START WITH parent_rule_node_id = sr.sr.pm_rule_id  CONNECT BY prior pm_rule_node_id = parent_rule_node_id

pero me saca error de que no reconoce sr.pm_rule_id, esto es necesario porque con is not null me retornaria todo el arbol, entonces necesito que empeice a recorrer el arbol desde el valor de sr.pm_rule_id, hay alguna forma de envierle ese valor inicial?

Gracias
__________________
"SJ
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 18:49.