У меня есть 3 таблицы на сервере Sql.Ниже приведена структура таблиц.
Таблица сотрудников будет содержать список сотрудников.Таблица проекта будет иметь список проектов.Таблица сопоставления будет содержать сопоставление между сотрудником и проектом, а также часы для каждой недели, заканчивающейся.Таблица сопоставления не будет иметь сопоставления для всех сотрудников и проекта для всех окончаний недели.Мне нужно присоединиться к трем таблицам и получить результаты всех сотрудников для конкретного проекта в течение недели.Если у конкретного сотрудника нет часов для этого выходного дня, данные сотрудника должны быть указаны, но часы должны быть равны 0.
У меня есть нижезапрос, но он показывает только сотрудника, который имеет значение weekEnding в таблице сопоставления.
SELECT RT.EMP_ID,RT.EMP_NAME, RT.EMP_EMAIL_ID, RPM.WEEK_ENDING, RPM.RSC_HOURS_LOGGED
FROM vl.rsrc_prjct_hrs_mapping RPM right outer Join vl.resource RT ON RT.EMP_ID = RPM.EMP_ID
JOIN
vl.project PT ON PT.PROJECT_ID=RPM.PROJECT_ID WHERE PT.PROJECT_IRM='TMPT-4854' AND
PT.PROJECT_DESC='33801-Urgent Care EnhancementEPDS V2' AND
RPM.WEEK_ENDING BETWEEN '2018-07-07' AND '2018-08-07';
Но я хочу, чтобы все сотрудники, но конец недели должен прийти, и часы должны быть 0.
Я также попытался использовать следующий запрос:
select RT.EMP_ID,RT.EMP_NAME, RT.EMP_EMAIL_ID,tt.week_ending,tt.RSC_HOURS_LOGGED from vl.resource RT left outer join (select RPM.EMP_ID,RPM.WEEK_ENDING, RPM.RSC_HOURS_LOGGED from vl.rsrc_prjct_hrs_mapping RPM join vl.project PT ON PT.PROJECT_ID=RPM.PROJECT_ID WHERE PT.PROJECT_IRM='TMPT-4854' AND PT.PROJECT_DESC='33801-Urgent Care EnhancementEPDS V2' AND RPM.WEEK_ENDING BETWEEN '2018-07-07' AND '2018-07-07') tt on RT.EMP_ID = tt.EMP_ID;
Но это дает всех сотрудников в таблице сотрудников, но я хочу, чтобы только сотрудники для конкретного проекта.