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

consulta sql

Estas en el tema de consulta sql en el foro de Oracle en Foros del Web. para los magos de sql: teniendo en cuenta esta tabla: CREATE TABLE empleado( a NUMBER(10) PRIMARY KEY, b NUMBER(10) REFERENCES empleado, c NUMBER(10) REFERENCES empleado ...
  #1 (permalink)  
Antiguo 11/03/2010, 22:12
 
Fecha de Ingreso: febrero-2010
Ubicación: medellin colombia
Mensajes: 37
Antigüedad: 14 años, 1 mes
Puntos: 1
consulta sql

para los magos de sql:
teniendo en cuenta esta tabla:
CREATE TABLE empleado(
a NUMBER(10) PRIMARY KEY,
b NUMBER(10) REFERENCES empleado,
c NUMBER(10) REFERENCES empleado
);

que hace esta consulta?

SELECT KONNECT_BY_ROOT a AS raiz,
a, b, LEVEL AS posicion,
SUBSTR(SYS_KONNECT_BY_PATH(a,'-'),2) AS ruta
FROM sade_adu
START WITH b IS NULL
KONNECT BY PRIOR a=b
UNION
SELECT KONNECT_BY_ROOT a AS raiz,
a, c, LEVEL AS posicion,
SUBSTR(SYS_KONNECT_BY_PATH(a,'-'),2) AS ruta
FROM sade_adu
START WITH c IS NULL
KONNECT BY PRIOR a=c;

porfa cambien la k por la c, en la palabra connect,
  #2 (permalink)  
Antiguo 12/03/2010, 06:55
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: consulta sql

Desconozco esta tabla sade_adu. Te podria decir mil cosas que podria hacer esa consulta pero seria mucho mejor si pones la estructura de sade_adu

Sqlplus
Código:
DESC sade_adu;
Saludos
  #3 (permalink)  
Antiguo 12/03/2010, 14:36
 
Fecha de Ingreso: febrero-2010
Ubicación: medellin colombia
Mensajes: 37
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: consulta sql

disculpa, la tabla sade_adu, es la misma tabla empleado, me equivoque al no cambiarle el nombre, realmente lo que debo hacer es adaptar la tabla y la consulta que me dieron a una tabla y una consulta de la vida real!,
se me ocurrio que puede ser una tabla empleado que puede tener
a:cedula,
b:jefe (cedula-jefe),
c:subordinado (cedula-subord),
la primera parte de la consulta (antes de UNION), retorna de cada cedula: la raiz(gerente, por decir algo) , el jefe, la posicion en el arbol jerarquico, y la ruta desde la raiz hasta la cedula en cuestion.
la segunda parte de la consulta retorna de cada cedula la raiz pero del rango mas bajo, el subordinado, la posicion en el arbol jerarquico, y la ruta desde el rango menor hasta la cedula en cuestion.
Al hacer la union se mezclan el campo jefe con el campo subordinado (no deberia ocurrir eso!!!), se agradecen sugerencias

Etiquetas: sql
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 01:21.