SQL - Использование подзапросов для объединения 3 таблиц - PullRequest
0 голосов
/ 10 апреля 2020

Для отображаемой базы данных на изображении: enter image description here

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

Мой запрос до сих пор:

select E.name as Name, C.dayid as Day_Worked, P.hoursworked as Hours_Worked
from employeepaysummary P
join employee E on P.employeeid = E.employeeid
join calendarday C on P.dayid = C.dayid ;

Я застрял в этой части: «Запрос должен возвращать 0 для сотрудников, которые не работали в течение какого-либо конкретного дня с 1 января по 15 января "

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 10 апреля 2020

Вам нужно OUTER JOIN:

SELECT E.name as Name, d.dayid as Day_Worked, P.hoursworked as Hours_Worked
FROM calendarday d LEFT JOIN
     employeepaysummary p
     on p.dayid = d.dayid LEFT JOIN
     employee e
     on e.employeeid = e.employeeid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...