У меня есть две таблицы - сотрудник и менеджер. У одного менеджера много сотрудников. Я хочу показать его в отношениях parent-child, используя команды CONNECT BY и GROUP BY.Невозможно использовать CONNECT BY и GROUP BY вместе
Структура для ЕМРЬОУЕЙ таблицы:
CREATE TABLE employee (
employee_id INTEGER,
manager_id INTEGER,
first_name VARCHAR2(10) NOT NULL,
last_name VARCHAR2(10) NOT NULL
);
Структура для менеджера таблицы:
CREATE TABLE manager(
manager_id INTEGER NOT NULL,
manager_dept VARCHAR2(20) NOT NULL,
first_name VARCHAR2(30) NOT NULL,
last_name VARCHAR2(30) NOT NULL
);
Я написал этот вопрос:
SELECT E.EMPLOYEE_ID, M.MANAGER_ID, E.FIRST_NAME, E.LAST_NAME, CONNECT_BY_ISLEAF, CONNECT_BY_ISCYCLE
FROM EMPLOYEE E
LEFT OUTER JOIN MANAGER M
ON E.MANAGER_ID=M.MANAGER_ID
connect by NOCYCLE m.manager_id=prior e.employee_id
GROUP BY manager_id;
Это дает эту ошибку:
ORA-00918: column ambiguously defined
00918. 00000 - "column ambiguously defined"
Error at Line: 6 Column: 10
Что не так в этой группе по предложению?
В этом случае вам не нужно «CONNECT BY», просто «LEFT JOIN» достаточно. Также нет необходимости использовать 'GROUP BY', потому что вы не вычисляете какие-либо агрегаты. Я предлагаю вам прочитать документацию по этим предметам, чтобы получить представление о том, когда вы должны его использовать. –