我正在尝试编写一个查询,这将允许我只抓取每个月的最新记录,然后对它们进行求和。下面是我的表格的一个例子。我想要做的是选择上个月。如果我能做到这一点,我可以弄清楚如何在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