Мне нужно создать временную таблицу, которая содержит диапазон дат, а также пару столбцов, которые содержат значения заполнителей (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 "- это пользовательская функция, которую я сделал, которая в основном выполняет то, что говорит, возвращая первый день месяца для предоставленной даты со временем ровно в полночь.
Это произвело почти точно то, что мне было нужно доЯ обнаружил, что в моих датах иногда были пропуски, где у меня было несколько месяцев, когда не было записей, вставляющих даты.Поскольку у моего результата все еще должны быть пропущенные месяцы, мне нужен другой подход.
Я добавил следующие декларации в хранимую процедуру, ожидая их потребности в диапазоне дат, которые мне нужны ...
declare $startDate set $startDate = select min(InsertDate) from customer
declare $endDate set $endDate = select max(InsertDate) from customer
... но я понятия не имею, что делать отсюда.
Я знаю, этот вопрос похож на этот вопрос но, честно говоря, этот ответ у меня над головой(Я не часто работаю с SQL, и когда я делаю это, как правило, на старых версиях SQL Server), и есть несколько незначительных различий, которые меня отталкивают.