首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将直线SQL中的双移动平均值合并到一个查询中?

如何将直线SQL中的双移动平均值合并到一个查询中?
EN

Stack Overflow用户
提问于 2012-11-20 11:58:35
回答 1查看 506关注 0票数 4

编辑:我需要在ACCESS中这样做。

我是一个SQL处男,并将非常感谢任何神奇的帮助!

对于一个简单的12个月预测,我使用的是12个月双移动平均。我已经设法通过查询1(下面)获得了单个移动平均线。基于查询1创建的表,我编写了另一个查询(查询2),以获得双移动平均值。

因此,我的当前流程需要两个查询。到目前为止,我将这两个步骤合并到一个查询中的工作没有成功。

我的问题是:在一个查询中,有什么方法可以计算双移动平均值吗?

查询1-对于单个移动平均值:

代码语言:javascript
复制
    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):

代码语言:javascript
复制
    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;
EN

回答 1

Stack Overflow用户

发布于 2012-12-22 13:47:12

我的问题是:在一个查询中,有什么方法可以计算双移动平均值吗?

由于您使用的是Microsoft,因此不需要这样做。将第一个查询保存为新查询。(对于不使用MS的人,将SQL语句保存为新查询等同于SQL语句CREATE VIEW ...)。然后按原样使用第二个查询,或将其保存为另一个新查询。

MS Access非常擅长优化基于查询(基于视图的视图)的查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13472737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档