Иногда вам лучше сначала прочитать временную таблицу.Иногда нет.Это имеет смысл, если у вас есть несколько проходов обработки для одних и тех же данных
Однако, если вы хотите "последние 90 дней", "последние 60 дней" и т. Д., То это можно сделать одним запросом
Читая вопрос еще раз, я бы просто запустил один запрос и вычислил все значения за один раз.И не заморачивайся никакими промежуточными столами
SELECT
Stuff,
SUM(CASE WHEN dayDiff <= 90 THEN SomeValue ELSE 0 END) AS SumValue90,
SUM(CASE WHEN dayDiff <= 60 THEN SomeValue ELSE 0 END) AS SumValue60,
SUM(CASE WHEN dayDiff <= 30 THEN SomeValue ELSE 0 END) AS SumValue30
FROM
(
SELECT
Stuff,
DATEDIFF(day, SomeData, GETDATE()) AS dayDiff
FROM
Mytable
WHERE
...
) foo
GROUP BY
...