在MDX中,可以在包含Measures Axis时创建命名集,例如
WITH
SET [MyFields] AS (
IIF((IsEmpty([Measures].[MeasureField])), null,
IIF(([School].[Key].CurrentMember IS [School].[Key].&[9999] or [School].[Key].CurrentMember IS [School].[Key].&[8888])
,{[Measures].[MeasureField]}
,IIF(([Semester].[Key].CurrentMember IS [Semester].[Key].&[1])
,{[Measures].[MeasureField]}
,null
)
)
)
)
SET [MyNonEmpty] AS (
NonEmpty(
{([Student].[UniqueId].[UniqueId].members,({ [School].[Key].&[9999], [School].[Key].&[8888] })
)
)
SELECT {
MyFields
} ON COLUMNS
,NON EMPTY { (
MyNonEmpty
* [Dim1].[Field1].[Field1].ALLMEMBERS
* [Dim2].[Field2].[Field2].ALLMEMBERS
...
}
...
虽然我可以在Dimensions(上面的COLUMNS)轴上使用Calculated Member(并成功返回行),但上面使用Measures(ROWS)轴中的命名SET的语法不返回任何行(并且没有错误)。
只是注意 - 在上面的示例中,无论MyFields是空还是非空,都不会返回任何行