4

編集:ACCESSでこれを行う必要があります。

私はSQLの処女であり、魔法の助けをいただければ幸いです。

単純な12か月の予測では、12か月の二重移動平均を使用しています。クエリ1(下記)を介して単一移動平均を引き出すことができました。クエリ1で作成されたテーブルに基づいて、二重移動平均を取得するための別のクエリ(クエリ2)を作成しました。

そのため、現在のプロセスには2つのクエリが必要です。これらの2つのステップを1つのクエリに結合するというこれまでの私の努力は、成功していません。

私の質問:単一のクエリで二重移動平均を計算する方法はありますか?

クエリ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;

QUERY 2-二重移動平均(現在、これはQUERY 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;
4

1 に答える 1

1

私の質問: 単一のクエリで二重移動平均を計算する方法はありますか?

Microsoft Access を使用しているため、その必要はありません。最初のクエリを新しいクエリとして保存します。(MS Access を使用しない場合、SQL ステートメントを新しいクエリとして保存することは、SQL ステートメントと同等です。) 次に、2 番目のクエリをそのまま使用するか、別の新しいクエリCREATE VIEW ...として保存します。

MS Access は、クエリに基づいて作成されたクエリ (ビューに基づいて作成されたビュー) の最適化に非常に優れています

于 2012-12-22T13:47:12.380 に答える