MOVINGMAXファンクション(省略形はMVMAX)は、指定されたディメンションにわたるディメンション化変数または式の一連の最大値を返します。ステータスにあるディメンション値ごとに、MOVINGMAXファンクションは、現行ディメンション値を基準にして指定範囲内のデータで最大値を検索します。
変数または式に指定のディメンションしかない場合、MOVINGMAXによって生成される一連の最大値は、ステータスにある各ディメンション値につき1つです。変数または式に指定のディメンション以外のディメンションがある場合、MOVINGMAXによって生成される一連の最大値は、他のディメンションのステータス・リストにある値の組合せごとに別個です。
戻り値
DECIMAL
構文
MOVINGMAX(expression, start, stop, step, [dimension [STATUS|limit-clause]])
引数
最大値を検索する値を持つ数値変数または計算。たとえば、units
、sales-expense
など。
検索範囲の起点を指定する整数。この範囲は、dimensionの現行値を基準にして指定します。0
(ゼロ)は現行値を指し、-1
は現行値の直前の時間間隔を指します。負のstart値の前にはカンマが必要です。
各最大値の基になるデータは、指定された範囲のディメンション値であり、最大値が返されるディメンション値を基準にしてその前または後の値が含まれます。異なるディメンション・ステータスを指定するSTATUSキーワードまたはlimit-clause引数を使用しないかぎり、MOVINGMAXはデフォルトのステータスを使用して範囲内の値をカウントします。
検索範囲の終点を指定する整数。負のstop値の前にはカンマが必要です。
検索の対象を、範囲内のすべての値、1つおきの値、2つおきの値などにするかどうかを指定する正の整数。stepの値が1
の場合、すべての値を検索します。値が2
の場合、1番目、3番目、5番目(以降同様)の値を検索します。たとえば、今月がJun96
で、startとstopの値がそれぞれ-3
と3
の場合、stepの値を2
にすると、Mar96
、May96
、Jul96
およびSep96
が検索され、この4つの月のうち最大値が返されます。
移動最大値が計算されるディメンション。任意のディメンションを指定できますが、通常は、1つのレベル(月レベル、年レベルなど)に制限されているTEXT型の階層型時間ディメンション、またはDAY、WEEK、MONTH、QUARTER、YEARのいずれかの型のディメンションです。
expressionのディメンションがDAY、WEEK、MONTH、QUARTER、YEARのいずれかのタイプであり、そのディメンションをMOVINGMAXに使用する場合は、dimension引数を省略できます。
移動最大値の計算時に、MOVINGMAXが現行のステータス・リストを使用することを指定します(つまり、現行のステータスにあるディメンション値のみを現行のステータス順に使用)。
移動最大値の計算時に、limit-clauseによって制限されるデフォルトのステータスをMOVINGMAXが使用することを指定します。
limit-clauseの構文は、各種LIMITコマンドにおけるlimit-clause引数の構文(つまり、LIMITコマンドの「TO」などのlimit-type引数の後の構文)と同じです。これらの引数の構文については、LIMITコマンド(値を使用)、LIMITコマンド(LEVELRELを使用)、LIMITコマンド(親リレーションを使用)、LIMITコマンド(関連ディメンションを使用)、LIMITコマンド(NOCONVERTを使用)およびLIMITコマンド(POSLISTを使用)を参照してください。
limit-clauseによって制限される現行のステータスがMOVINGMAXで使用されるようにするには、limit-clauseにLIMITファンクションを指定します。
例
販売実績の最大値を計算する例は、例8-31「移動平均の計算」を参照してください。