У меня есть два запроса: один возвращает идентификатор и имя каждого человека / ресурса, назначенного в качестве лидера команды (NL_TEAM_LEAD
) в таблице ODF_CA_OTHER
, а другой возвращает идентификатор и имя каждого ресурса с командой Главная роль (PRPRIMARYROLEID = 5112005
) в таблице PRJ_RESOURCES
.
Существует ли способ в одном запросе вернуть идентификатор и имя каждого, у кого есть основная роль руководителя группы в PRJ_RESOURCES
таблицу, а также каждого, назначенного в качестве руководителя группы (NL_TEAM_LEAD
) в таблице ODF_CA_OTHER
(без повторяющихся имен)?
Я спрашиваю, потому что мне нужно создать этот запрос для экрана поиска, который включает в себя все Командные лидеры и все, кто назначен в качестве Командного лидера, но не все, назначенные в качестве Командного лидера, обязательно будут иметь главную роль командного лидера в таблице ресурсов. один запрос.
-- Resources with Team Lead primary role in PRJ_RESOURCES
SELECT DISTINCT
SRM.ID AS ID,
CASE
WHEN SRM.LAST_NAME IS NULL AND SRM.FIRST_NAME IS NULL AND SRM.MIDDLE_NAME IS NULL THEN ' '
ELSE CONCAT(CONCAT(CONCAT(SRM.LAST_NAME, ', '), SRM.FIRST_NAME), NVL(SRM.MIDDLE_NAME, ''))
END AS NAME
FROM
SRM_RESOURCES SRM
JOIN
PRJ_RESOURCES PRJ ON SRM.ID = PRJ.PRID
WHERE
PRJ.PRPRIMARYROLEID = 5112005;
-- Resources assigned as Team Lead in ODF_CA_OTHER
SELECT DISTINCT
OTH.NL_TEAM_LEAD AS ID,
CASE
WHEN SRM.LAST_NAME IS NULL AND SRM.FIRST_NAME IS NULL AND SRM.MIDDLE_NAME IS NULL THEN ' '
ELSE CONCAT(CONCAT(CONCAT(SRM.LAST_NAME, ', '), SRM.FIRST_NAME), NVL(SRM.MIDDLE_NAME, ''))
END AS NAME
FROM
ODF_CA_OTHER OTH
JOIN
SRM_RESOURCES SRM ON OTH.NL_TEAM_LEAD = SRM.ID;