ValidMeasure(MDX)

通过强制不适用的维度回到其 All 级别(或如果不可聚合时默认成员)返回指定元组结果,返回立方体中的测度值。

Syntax

  
ValidMeasure(Tuple_Expression)   

Arguments

Tuple_Expression
一个有效的多维表达式(MDX)表达式,返回元组。

Remarks

ValidMeasure函数返回元组的值,忽略与元组返回的测度群无关的属性。 属性可以与度量无关,原因有两个:

  • 该属性的维度与元组中测度的测度群没有关系。

  • 该属性的维度与测度的测度群没有关系,但粒度属性不是关键属性,粒度属性也与元组中的属性没有直接关系。

该函数指定的行为是默认的服务器端行为,由测量组对象上的 IgnoreUnrelatedDimensions 属性控制。

对于指定元组中每个具有粒度的属性(即元组中的成员不是 All 成员),当前的坐标移动如下:

  • 与指定属性成员相关的属性会迁移到当前成员中存在的成员。

  • 与指定属性成员相关的属性会被迁移到All成员(或如果层级不可聚合则移至默认成员)。

  • 无关属性则根据测量被移至“全成员”。

示例

以下查询展示了如何使用 ValidMeasure 函数来覆盖 IgnoreUnrelatedDimensions 属性的行为。 在Adventure Works立方体中,销售目标测量组的IgnoreUnrelatedDimensions设置为False;由于日期维度以日历季度粒度加入该度量组,这意味着销售配额度量默认会返回低于日历季度的值(不过MDX脚本中也有计算方法,可以分配到月份层级的值)。 在计算度量中使用ValidMeasure函数,可以让销售配额度量表现为“忽略UnrelatedDimensions”为真,并强制销售配额显示当前日历季度的值。

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]  

同样,销售目标测量组与推广维度完全无关系,因此在任何推广层级的“全成员”以下,该指标将返回空值。 同样,这种行为可以通过使用 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]