нужна таблица с датами (каждая строка таблицы - новый день), если диапазон дат известен, то можно собрать путем SELECT .. UNION SELECT ... и т.д.
вот запрос, который скажет вам в какой день сколько сотрудников отсутствует:
SELECT c.date_time, COUNT(*) as cnt
FROM calendar c -- таблица о которой я написал выше
LEFT JOIN leave_people p ON c.date_time BETWEEN p.start_date AND IFNULL(p.end_date, c.date_time)
GROUP BY c.date_time
здесь IFNULL использовал для тех целей, когда окончание неизвестно, например человек на больничном (для случая, когда в таблице leave_people хранятся не только отпуска, но и больничные и т.д.)