Мне нужно загрузить таблицу на основе даты ввода из другой таблицы, которая находится между 1-м днем месяца и последним днем месяца. Мне нужно уменьшить нагрузку, чтобы она составляла 1 месяц записей: 1 месяц от текущего месяца, затем 2 месяца от текущего месяца и т. Д.
Я пробовал CTE, используя курсор и вручную изменяя параметры датированных значений. Этот последний метод работает, но я хотел бы загрузить таблицу динамически
Declare @StartDt as datetime = (SELECT FORMAT(DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,GETDATE())-1,0)),'MM/dd/yyyy'));
Declare @endDt as datetime = EOMONTH(@StartDt);
SELECT useruid,
userfullname,
sum(totaltime)SumTime,
@StartDt as StartDate,
@EndDt as EndDate
FROM Table_1.tbl
WHERE ENTRYDATE between @StartDt and @EndDt
group by useruid, USERFULLNAME;
Я вставляю это в другую таблицу. У меня нет проблем с этим путем ручного изменения -1 в переменной Startdt на -2 и так далее. Я хочу знать, могу ли я динамически изменить его при загрузке другой таблицы.
Опять же, у меня нет проблем с загрузкой таблицы. Я просто хочу знать, есть ли более эффективный способ сделать это, так как мне нужно вернуться на 100 месяцев назад.