ValidMeasure (MDX)
指定したタプルの結果を返すときに、適用できないディメンションを All レベル (集計できない場合は既定のメンバー) に強制することで、キューブ内のメジャーの値を返します。
構文
ValidMeasure(Tuple_Expression)
引数
Tuple_Expression
タプルを返す有効な多次元式 (MDX) 式。
解説
ValidMeasure 関数はタプルの値を返し、タプルが返す値を持つ Measure のメジャー グループと関係のない属性は無視します。 属性にメジャーとの間のリレーションシップが存在しない理由は 2 つ考えられます。
属性のディメンションには、タプル内のメジャーのメジャー グループとのリレーションシップがありません。
属性のディメンションにはメジャーのメジャー グループとのリレーションシップはありませんが、粒度属性はキー属性ではなく、粒度属性にはタプル内の 属性との直接のリレーションシップがありません。
この関数で指定された動作は、既定のサーバー側の動作であり、メジャー グループ オブジェクトの IgnoreUnrelatedDimensions プロパティによって制御されます。
指定された組の各属性に粒度が指定されている場合 (つまり、組のメンバーが All メンバーでない場合)、各属性の現在の座標は次のように移動されます。
指定した属性メンバーに関連する属性は、現在のメンバーと共に存在するメンバーに移動されます。
指定された属性メンバーに関連する属性は、All メンバー (階層が集計可能でない場合は既定のメンバー) に移動されます。
関連しない属性は、(メジャーに基づいて) All メンバーに移動されます。
例
次のクエリは、ValidMeasure 関数を使用して IgnoreUnrelatedDimensions プロパティの動作をオーバーライドする方法を示しています。 Adventure Works キューブの Sales Targets メジャー グループには、IgnoreUnrelatedDimensions が False に設定されています。Date ディメンションはカレンダー 四半期の細分性でこのメジャー グループに結合されるため、Sales Quota メジャーは既定で Calendar Quarter より下に null を返します (ただし、MDX スクリプトには、月レベルまで値を割り当てる計算もあります)。 計算されるメジャーで ValidMeasure 関数を使用すると、Sales Quota メジャーは IgnoreUnrelatedDimensions が True に設定されている場合と同じように動作し、Sales Quota が現在の Calendar Quarter の値を表示するように強制できます。
WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,
[Date].[Calendar].MEMBERS ON 1
FROM [Adventure Works]
同様に、Sales Targets メジャー グループは Promotion ディメンションとまったく関係がないため、Promotion の階層のすべてのメンバーの下に null が返されます。 ここでも、ValidMeasure を使用してこの動作を変更できます。
WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,
[Promotion].[Promotions].members ON 1
FROM [Adventure Works]