我有兩張表 - 員工和經理。一位經理有很多員工。我想使用CONNECT BY和GROUP BY命令在父子關係中顯示它。不能同時使用CONNECT BY和GROUP BY
結構EMPLOYEE表:
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
這個小組by by clause有什麼問題?
你不需要'在這種情況下CONNECT BY',只是'LEFT JOIN'就足夠了。也不需要使用「GROUP BY」,因爲您沒有計算任何聚合。我建議你閱讀那些主題的文檔,以便在你應該使用它時得到一個想法。 –