Я считаю, что следующее будет работать. Предполагается, что у вас есть таблица дат (состоит из одного столбца, который содержит все даты между 1950 и 2050 годами), и вы просто объединяете ее с таблицей регистрации / выезда:
SELECT dates.date, Structure, COUNT(DISTINCT Person) Persons_on_That_Date
FROM dates
LEFT JOIN turndata ON dates.date BETWEEN Date_IN AND Date_OUT
WHERE dates.date BETWEEN '2018-03-01' AND '2018-03-31'
GROUP BY dates.date, Structure
ORDER BY Structure, dates.date
Демо Здесь
Примечание. Вышеприведенное предполагает, что дата выхода указана включительно (человек считается как внутри на эту дату). Если дата выхода является исключительной, то предложение ON
становится:
... ON Date_IN <= dates.date AND dates.date < Date_OUT