我有一個表[製作]包含以下結構: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