Рассмотрит следующую таблицуКак перемещаться в сводных таблицах?
create table EMPLOYEE
(
empno NUMBER not null,
ename VARCHAR2(100),
salary NUMBER,
hiredate DATE,
manager NUMBER
);
alter table EMPLOYEE add constraint PK_EMP primary key (EMPNO);
alter table EMPLOYEE
add constraint FK_MGR foreign key (MANAGER)
references EMPLOYEE (EMPNO);
, который является самостоятельными петельными таблицы, т.е. каждого сотрудника имеет менеджер, кроме корня.
Я хочу, чтобы выполнить следующий запрос на этой таблице:
найти все сотрудники, имеющие больше зарплату, чем их руководители?
P.S.
Существует только один корень в структуре
рассмотрим следующий запрос
SELECT LPAD(emp.ename, (LEVEL-1)*5 + LENGTH(emp.ename), ' ') AS "Hierarchy"
FROM employee emp
START WITH emp.manager IS NULL
CONNECT BY manager = PRIOR empno;
результат будет что-то вроде этого:
Alice
Alex
Abbey
Sarah
Jack
Bill
Jacob
Valencia
Bob
Babak
...
Я сделал следующий запрос
SELECT LPAD(emp.ename, (LEVEL-1)*5 + LENGTH(emp.ename), ' ') AS "Hierarchy"
FROM employee emp
START WITH empno IN (SELECT empno FROM employee)
CONNECT BY PRIOR manager = empno;
, который делает поддерево для каждого сотрудника в таблице сотрудников снизу вверх, но я не знаю, как перемещаться, чтобы достичь желаемого результата!
первых, дайте нам знать, что вы пробовали ?? –
может у менеджера есть менеджер на нем? А следующий после этого и т. Д.? Что вы ожидаете, когда запрос вернется в этом случае? (И, как сказал Дипак, покажите нам, что у вас есть) – sstan
Нет, ТОЛЬКО один корень в таблице –