通过强制不适用的维度回到其 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]