Как я могу создать временную таблицу, заполненную датами, в SQL Server 2000?

Мне нужно создать временную таблицу, содержащую диапазон дат, а также пару столбцов, которые содержат значения заполнителей (0) для будущего использования. Мне нужны даты первого дня каждого месяца между $ startDate и $ endDate, где эти переменные могут быть разделены на несколько лет.

Мой исходный оператор sql выглядел так:

select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales
into #dates
from customer
group by dbo.FirstOfMonth(InsertDate)

«FirstOfMonth» - это определяемая пользователем функция I made, что в значительной степени делает то, что он говорит, возвращая первый день месяца для указанной даты с указанием времени ровно в полночь.

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

Я добавил следующие объявления к хранимой процедуре, предвидя их потребность в диапазоне дат, который мне нужен ...

declare $startDate set $startDate = select min(InsertDate) from customer
declare $endDate set $endDate = select max(InsertDate) from customer

... но я понятия не имею, что делать дальше.

Я знаю это вопрос похож на этот вопрос , но, откровенно говоря, этот ответ мне не по зубам (я не часто работаю с SQL, и когда я это делаю, как правило, на старых версиях SQL Server), и есть несколько незначительных отличий, которые меня сбивают с толку.

11
задан Community 23 May 2017 в 12:10
поделиться