Share via


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]

参照

MDX 関数リファレンス (MDX)