我有一个表[制作]包含以下结构:12个月均线,日期
rep (char(10))
,cyc_date (datetime) ---- already standardized to mm/01/yyyy
,amt (decimal)
我对各rep从1/1/2011到2013年8月1日的数据。我希望能够做的就是创建一个12个月移动平均数开始1/1/2012每个代表,具体如下:
rep cyc_dt 12moAvg
-------------------------
A 1/1/2012 10000.01
A 2/1/2012 13510.05
. ........ ........
A 8/1/2013 22101.32
B 1/1/2012 98328.22
B ........ ........
,其中每一行代表说,代表在规定的时间12个月移动平均数。我发现一些模糊的例子,我尝试了它们无济于事。看来,通过rep组件添加组是与其他示例的主要背离。
这是关于据我得到:
SELECT
rep,
cyc_date,
(
SELECT Avg([amt])
FROM production Q
WHERE Q.[cyc_date] BETWEEN DateAdd("yyyy",-1,[cyc_date]+1) AND [cyc_date]
) AS 12moavg
FROM production
该查询似乎总平均值或和拉,因为在相关子查询没有分组。当我尝试分组时,我得到一个错误,它最多只能返回一行。
'cyc_dt'中的值总是在每月的第一天? – HansUp
是的,抱歉,那不清楚。每个cyc_dt的日期都标准化到本月的第一天。 – Jeremy
谢谢。那么对于'rep' A和'cyc_dt' 1/1/2012,'12moAvg'代表2011年1月1日至2011年12月1日期间'amt'值的平均值,还是包含'amt'值2012年1月1日在那个平均? – HansUp