计算移动平均线 - MS ACCESS

时间:2018-03-23 19:53:40

标签: ms-access

我想计算4行的移动平均值。我在网上搜索并尝试了不同的方法,但我没有得到结果。这是我的表格的一个例子

    Week    DATES       CURRYR            MOVINGAVG
       1    4/7/2017    351,929.76  
       2    4/14/2017   352,202.99  
       3    4/21/2017   483,987.60  
       4    4/28/2017   358,125.55  (AVG CURRYR 0F #1-#4)
       5    5/5/2017    335,180.47  (AVG CURRYR 0F #2-#5)
       6    5/12/2017   421,693.56  (AVG CURRYR 0F #3-#6)
       7    5/19/2017   394,410.34  (AVG CURRYR 0F #4-#7)
       8    5/26/2017   437,064.82  (AVG CURRYR 0F #5-#8)
       9    6/2/2017    536,921.87  (AVG CURRYR 0F #6-#9)
      10    6/9/2017    358,177.15  (AVG CURRYR 0F #7-#10)
      11    6/16/2017   418,651.36  (AVG CURRYR 0F #8-#11)
      12    6/23/2017   402,590.79  (AVG CURRYR 0F #9-#12)
      13    6/30/2017   407,775.24  (AVG CURRYR 0F #10-#13)
      14    7/7/2017    391,020.15  (AVG CURRYR 0F #11-#14)

所以没有......

有没有办法可以在MS ACCESS

中执行此操作

1 个答案:

答案 0 :(得分:0)

我asusme你的真实数据还有一些东西要加入,在这种情况下你需要将它们带入子查询。这也是有效的,因为Weeks是一个完整的列表(即你没有第15周,第16周,第18周,第20周,这将弄乱它,逻辑需要改变)。

SELECT o.Week
    ,o.DATES
    ,o.CURRYR
    ,(
        SELECT avg(CurrYR)
        FROM Table1 i
        WHERE i.week <= o.week
            AND i.week >= (o.week - 3)
        having count(*) >=4
        ) AS MovingAverage
FROM Table1 o

Week    DATES       CURRYR      MovingAverage
1       4/7/2017    351,929.76  
2       4/14/2017   352,202.99  
3       4/21/2017   483,987.60  
4       4/28/2017   358,125.55  386561.475
5       5/5/2017    335,180.47  382374.1525
6       5/12/2017   421,693.56  399746.795
7       5/19/2017   394,410.34  377352.48
8       5/26/2017   437,064.82  397087.2975
9       6/2/2017    536,921.87  447522.6475
10      6/9/2017    358,177.15  431643.545
11      6/16/2017   418,651.36  437703.8
12      6/23/2017   402,590.79  429085.2925
13      6/30/2017   407,775.24  396798.635
14      7/7/2017    391,020.15  405009.385