Есть проблема стратегического уровня, которую вы должны выяснить, как вы хотите решить: что определяет даты?Другими словами, у вас есть таблица «желаемого результата» - как она получает даты в левой части?
Это может показаться глупым / глупым вопросом, но представьте, что у вас две строки вваш стол:
1/1/2018 through 1/3/2018
2/1/2018 through 2/3/2018
... ну, в вашем отчете должно быть все дни между 1/4 и 1/31, в которых было "0" пациентов, верно?Таким образом, в реальности вам придется либо циклически проходить диапазон дат и генерировать каждую дату, либо иметь основную таблицу «ListOfEveryDate» (как предложено в UnhandledExcepSean в его комментарии). А если вы хотите циклически просмотреть диапазон дат,Вы собираетесь, чтобы этот цикл происходил в SQL или на языке более высокого уровня, например .NET?
Лично я бы просто согласился с идеей MasterDateTable, даже если она немного неуклюжа, просто из-за того, насколько она проста.находится на уровне кода:
select
date,
(select subquery to get count of records in data table)
from
masterDateTable
where date between @startDate and @endDate
... и до тех пор, пока у вас есть код, который обеспечивает заполнение таблицы датами, у вас все в порядке (вам не хотелось бы, чтобы код останавливалсяработает, потому что вы населили его только до 2020 года, но оказывается, что он все еще используется в 2021 году!)