Consulta:toda la estructura de árbol :
SELECT *
FROM Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Consulta:los hijos de un empleado determinado :
No necesita una consulta jerárquica para esto.
(El padre lo proporciona la variable de vinculación :parent_id
)
SELECT *
FROM Employee
WHERE ParentID = :parent_id
ORDER BY LastName, FirstName, ID;
Consulta:los descendientes de un empleado determinado :
La misma consulta que para todo el árbol pero con un punto de inicio diferente
(El padre lo proporciona la variable de vinculación :parent_id
)
SELECT *
FROM Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Consulta - El empleado y sus ascendientes :
Similar a la consulta anterior pero con CONNECT BY
al revés y no necesitará pedir a los hermanos, ya que solo habrá un gerente inmediato por empleado.
(El empleado viene dado por la variable de vinculación :employee_id
)
SELECT *
FROM Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;
Consulta:el administrador del empleado :
Idéntica a la consulta anterior pero con filtro LEVEL = 2
para obtener simplemente la fila principal inmediata.
(El empleado viene dado por la variable de vinculación :employee_id
)
SELECT e.*
FROM Employee e
WHERE LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;