Самосоединение SQL в той же строке

Я пытаюсь создать отчет, в котором есть имя и фамилия сотрудников, а также имена и фамилии их менеджеров. Я пытаюсь сделать самосоединение.

  • On the ERD there is:
    • EMP_NUM which is the employees ID
    • EMP_LNAME — фамилия сотрудника
    • EMP_FNAME — имя сотрудника
    • EMP_MANAGER, который является идентификатором менеджера (идентификатор менеджера совпадает с идентификатором сотрудника, если сотрудник является менеджером).

Я не могу заставить его успешно скомпилировать. Я все еще учусь, поэтому любая помощь/подсказки будут отличными. Я использую Oracle SQL Developer.

 SELECT  EMPLOYEE.EMP_NUM "Employee ID",
 EMPLOYEE.EMP_LNAME "Employee First Name",
 EMPLOYEE.EMP_FNAME "Employee Last Name",
 EMPLOYEE.EMP_MANAGER "Managers ID for Employee",
 E2.EMP_LNAME as ManagerEMP_LNAME,
 E2.EMP_FNAME as ManagerEMP_FNAME
 FROM CARRM.EMPLOYEE
 left outer join CARRM E2 on EMPLOYEE.EMP_MANAGER = E2.EMP_NUM; 

person TitanC    schedule 07.03.2014    source источник
comment
Вы намеревались иметь . между CARRM и СОТРУДНИКОМ? Если вы задумали его как псевдоним, это неверно. Что-то не так между именем в from и соединением.   -  person clhereistian    schedule 07.03.2014
comment
CARRM — это имя базы данных.   -  person TitanC    schedule 07.03.2014


Ответы (1)


В исходном тексте вы упомянули имя таблицы «Carrm.Employee», но в левом внешнем объединении похоже, что вы упомянули только имя своей базы данных «Carrm». Попробуйте следующее

SELECT  E1.EMP_NUM "Employee ID",
E1.EMP_LNAME "Employee First Name",
 E1.EMP_FNAME "Employee Last Name",
 E1.EMP_MANAGER "Managers ID for Employee",
 E2.EMP_LNAME as ManagerEMP_LNAME,
 E2.EMP_FNAME as ManagerEMP_FNAME
 FROM CARRM.EMPLOYEE E1
 left outer join CARRM.Employee E2 on E1.EMP_MANAGER = E2.EMP_NUM; 
person Baahubali    schedule 07.03.2014
comment
Спасибо. Это успешно выполнено. Это всегда мелочи... постарайтесь уловить их, но когда вы так долго смотрите на них, они растворяются. - person TitanC; 07.03.2014