Отображение имени менеджера вместо идентификатора менеджера в Oracle ADF - PullRequest
0 голосов
/ 07 октября 2018

Таблица сотрудников содержит -

 Employee_Id,
 Manager_Id,
 First_Name,
 Last_Name

Я хочу отобразить имя менеджера вместо идентификатора

Невозможно использовать LOV

Текущий запрос в VO:

   SELECT 
      Employees.EMPLOYEE_ID, 
      Employees.FIRST_NAME, 
      Employees.LAST_NAME, 
      JobObject.JOB_TITLE, 
      Employees.COMMISSION_PCT, 
      Departments.DEPARTMENT_NAME, 
      Departments.DEPARTMENT_ID, 
      JobObject.JOB_ID, 
      (First_Name||' '||Last_Name) AS VIEW_ATTR, 
      Employees.SALARY, 
      Employees.MANAGER_ID
 FROM EMPLOYEES Employees, 
      DEPARTMENTS Departments, 
      JOBS JobObject
WHERE Employees.DEPARTMENT_ID = Departments.DEPARTMENT_ID

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

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

  SELECT emp.EMPLOYEE_ID,
   emp.FIRST_NAME,
   emp.LAST_NAME,
   JobObject.JOB_TITLE,
   emp.COMMISSION_PCT,
   dept.DEPARTMENT_NAME,
   dept.DEPARTMENT_ID,
   JobObject.JOB_ID,
   (emp_manager.First_Name || ' ' || emp_manager.Last_Name) AS manager_name,
   emp.SALARY
 FROM EMPLOYEES emp
   JOIN DEPARTMENTS dept ON (emp.department_id = dept.department_id)
   JOIN JOBS JobObject ON (emp.job_id = JobObject.job_id)
   JOIN EMPLOYEES emp_manager ON( emp.manager_id = emp_manager.employee_id  )
0 голосов
/ 07 октября 2018

Если я правильно понял, причина, по которой вы ничего не получаете, связана с присоединением, при использовании запятых в предложении FROM может возникнуть проблема.и для имени менеджера, если у вас есть таблица менеджера, вы должны внутренне присоединиться к ней или попробовать это:

 SELECT Employees.EMPLOYEE_ID, 
   Employees.FIRST_NAME, 
   Employees.LAST_NAME, 
   JobObject.JOB_TITLE, 
   Employees.COMMISSION_PCT, 
   Departments.DEPARTMENT_NAME, 
   Departments.DEPARTMENT_ID, 
   JobObject.JOB_ID, 
   (Employees.First_Name+' '+Employees.Last_Name) AS ManagerName, 
   Employees.SALARY, 
   Employees.MANAGER_ID
   FROM EMPLOYEES Employees,
inner join
 DEPARTMENTS Departments on Employees.DEPARTMENT_ID = Departments.DEPARTMENT_ID
 left outer join 
JOBS JobObject on JobObject.Job_Id=Employees.Job_Id
where Employees.MANAGER_ID is not null and Employees.MANAGER_ID in (EMPLOYEE_ID from employees)
...