编辑:我需要在ACCESS中这样做。
我是一个SQL处男,并将非常感谢任何神奇的帮助!
对于一个简单的12个月预测,我使用的是12个月双移动平均。我已经设法通过查询1(下面)获得了单个移动平均线。基于查询1创建的表,我编写了另一个查询(查询2),以获得双移动平均值。
因此,我的当前流程需要两个查询。到目前为止,我将这两个步骤合并到一个查询中的工作没有成功。
我的问题是:在一个查询中,有什么方法可以计算双移动平均值吗?
查询1-对于单个移动平均值:
SELECT A.*, IIf([A].[VOL]>0,
(SELECT AVG(B.[VOL])
FROM [Turnover] as B
WHERE (B.Code = A.Code) AND (B.YM Between A.YM - 1 AND A.YM - ([12] * 31))),
(SELECT AVG(B.[VOL])
FROM [Turnover] as B
WHERE (B.Code = A.Code) AND (B.YM Between Now() - 31 AND A.YM - ([12] * 31)))) AS [Mvg Avg 1],
INTO [Model 12m]
FROM [Turnover] AS A;查询2-双移动平均线(目前指的是查询1):
SELECT A.*, IIf([A].[Mvg Avg 1]>0,(SELECT AVG(B.[Mvg Avg 1])
FROM [Model 12m] as B
WHERE (B.Code = A.Code) AND (B.YM Between A.YM - 1 AND A.YM - ([12] * 31))),(SELECT AVG(B.[Mvg Avg 1])
FROM [Model 12m] as B
WHERE (B.Code = A.Code) AND (B.YM Between Now() - 31 AND A.YM - ([12] * 31)))) AS [2 Mvg Avg],
INTO [Model 12m - 2MA]
FROM [Model 12m] AS A;发布于 2012-12-22 13:47:12
我的问题是:在一个查询中,有什么方法可以计算双移动平均值吗?
由于您使用的是Microsoft,因此不需要这样做。将第一个查询保存为新查询。(对于不使用MS的人,将SQL语句保存为新查询等同于SQL语句CREATE VIEW ...)。然后按原样使用第二个查询,或将其保存为另一个新查询。
MS Access非常擅长优化基于查询(基于视图的视图)的查询。
https://stackoverflow.com/questions/13472737
复制相似问题