Я пытаюсь написать запрос, который позволит мне захватывать ТОЛЬКО самые последние записи за каждый месяц, а затем суммировать их. Ниже приведен пример моей таблицы. То, что я хочу сделать, это выбрать предыдущий месяц. Если я смогу это сделать, я могу понять, как захватить 2 месяца назад, год назад, квартал и т. Д.Выберите только самую последнюю запись за каждый месяц
Оглядываясь ниже, если мы находимся в октябре, я хочу взять и подытожить только записи на 9/24/2014 8:57
Я также хочу написать отдельный запрос, который делает то же самое, но в течение августа.
Моя цель - сделать это, указав и установив переменные. В настоящее время я использую это в каждой из моих статей. Я просто зациклился на том, чтобы выяснить максимальную (дату) часть того, что мне нужно сделать.
DECLARE @FirstDayofPrevMonth datetime
SET @FirstDayofPrevMonth = CONVERT(DATE, DATEADD(MONTH, -1, DATEADD(DAY, 1 - DAY(GETDATE()),
GETDATE())))
DECLARE @LastDayofPrevMonth datetime
SET @LastDayofPrevMonth = CONVERT(DATE, DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()))
DECLARE @FirstDayofPrevMonthPrior datetime
SET @FirstDayofPrevMonthPrior = dateadd(MONTH, -2,@FirstDayofPrevMonth)
DECLARE @LastDayofPrevMonthPrior datetime
SET @LastDayofPrevMonthPrior = DATEADD(MONTH,-2,@LastDayofPrevMonth)
UPDATE: Вот что я использовал в качестве моего последнего рабочего раствора:
SELECT SUM(NumofAccounts) AS Total
FROM dbo.Summary
WHERE ImportDate = (select MAX(importdate) from AllAcctInfoSummary
where year(importdate) = year(@LastDayofPrevMonth)
and month(importdate) = month(@LastDayofPrevMonth))
group by ImportDate
Возможно, вы захотите включить тестовые данные в текстовую форму для легкая вырезка. –
Я не знаю, как ... – donviti
Вы конкретно хотите использовать переменные? потому что есть более простые способы сделать это – FuzzyTree