У меня есть таблица AMZ_EMPLOYEE_DETAILS
с Employee Id
, Employee Name
и Supervisor1
и Supervisor 2
. Супервайзеры являются работниками, но представлены своим именем. Моя задача состояла в том, чтобы заменить имена супервизоров их идентификаторами.
Я использовал следующий запрос для получения решения, но он использует подзапросы изапрос выглядит оптимизированным. Для этого я также сделал таблицу размеров со всеми Id
и Employee Names
, таблица AMZ_EMPLOYEE
SELECT S1.ID, S1.EMP_NAME, S1.SUPER_1_NEW, ZZ.ID AS SUPER_2_NEW
FROM
(SELECT A.ID,A.EMP_NAME,A.SUPER_1,A.SUPER_2,Z.ID AS SUPER_1_NEW
FROM AMZ_EMPLOYEE_DETAILS A
LEFT JOIN
AMZ_EMPLOYEE Z
ON A.SUPER_1 = Z.EMP_NAME ) S1
LEFT JOIN
AMZ_EMPLOYEE ZZ
ON S1.SUPER_2 = ZZ.EMP_NAME
ORDER BY 1
Ниже приводится ожидаемый результат.