我正在嘗試編寫一個查詢,這將允許我只抓取每個月的最新記錄,然後對它們進行求和。下面是我的表格的一個例子。我想要做的是選擇上個月。如果我能做到這一點,我可以弄清楚如何在2個月前,一年前,本季度等等。只選擇每個月的最近記錄
下面看,如果我們在10月份,我想抓取和總結只有9個記錄/ 24/2014 8:57
我也想要寫一個單獨的查詢,但是做同樣的事情,但對於八月。
我的目標是通過聲明和設置變量來做到這一點。目前我在每個where子句中使用這個。我只是想搞清楚我需要做的最大(日期)部分。
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)
更新:下面是我用我的最終工作的解決方案:
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
您可能希望將測試數據以文本形式包含容易cut'n'paste。 – 2014-09-24 15:28:06
我不知道如何... – donviti 2014-09-24 15:30:52
你是否特別想使用變量?因爲有更簡單的方法去做 – FuzzyTree 2014-09-24 15:34:54