У меня есть 2 таблицы сотрудников и отпуск по болезни, которые связаны с идентификатором сотрудника, и в основном таблица медицинских отпусков будет содержать несколько данных об одном сотруднике, который берет несколько отпусков. Я хочу отфильтровать данные по месяцумедицинский отпуск и включает сотрудников, чей медицинский отпуск не указан в отфильтрованном месяце, в качестве нулевого значения.
EMPLOYEES MEDICAL
|employee|ID| |ID|DateOfLeave|
A 1 1 2019/1/3
B 2 1 2019/4/15
C 3 2 2019/5/16
D 4
Выражение sql, которое я придумал, фильтрует конкретный месяц отпуска и подсчитывает количествоесли в этот месяц они брали отпуск, например, в январе, в него также входят сотрудники, у которых нет отпуска в виде «0», однако сотрудники, у которых есть медицинские отпуска, которых нет в январе, вообще не отображаются в наборе результатов, какМогу ли я показать им 0 медицинских листов в январе месяце?
select employees.employee, employees.ID,
count(medical.DateOfLeave) as NumberOfLeaves
from employees
left outer join medical on employees.ID = medical.ID
where (MONTH(DateOfLeave) = 1) or (medical.DateOfLeave is null)
group by employees.employee,employees.ID
RESULT SET
|Employee|ID|NumberOfLeaves|
A 1 1
C 3 0
D 4 0
Как вы можете видеть, B исчезает, но я хочу, чтобы он отображался в наборе результатов как '0', каксотрудник C и D
Я знаю это, потому что медицинские данные сотрудника B не соответствуют условиюздесь, но как мне написать заявление, которое включает сотрудников, у которых есть медицинские отпуска, которых нет в январе в результате, установленном как 0 ??