成员属性的概念
将维度属性的AttributeHierarchyEnabled设置为False,那么这个属性就是成员属性,成员属性不会创建属性层次结构,但是能为其他叶级成员提供额外的信息。
AttributeHierarchyEnabled 属性的值确定是否创建属性层次结构。如果将该属性设置为 False,则不创建属性层次结构,并且无法将该属性用作用户层次结构中的一个级别;该属性层次结构只作为成员属性存在。
1示例,将DimProduct的Color属性的AttributeHierarchyEnabled设置为False,使Color作为成员属性。
创建一个用户定义的层次结构Product Hierarchy,按照提示将ProductKey,ProductSubcategoryKey和ProductCategoryKey的AttributeHierarchyVisible设置为False,使这三个属性的属性层次结构不显示出来,以便使User产生混乱。
2 在Browser选项卡中,在Hierarchy列表中没有Color ,也没有AttributeHierarchyVisible为False的属性层次结构。
如果尝试添加一个禁用的属性层次结构作为用户层次结构的一个级别,那么您将收到错误消息,通知您必须启用该属性层次结构才能参与用户定义层次结构。
3 成员属性为其他成员提供额外的信息
成员属性作为附加信息:一个维度属性不需要直接显示给最终的用户,不需要做数据聚合等,仅仅作为查询的数据单元的附加信息。
既然在DimProduct的Browser中查看不到Color的信息,那么color如何提供额外的信息了?必须在Excel的PivotTable中进行查看,才能看到成员属性的额外信息。
由于成员属性提供的是叶级成员的额外信息,必须下钻到叶级成员才能查看,共有两种方式
3.1 选中一个叶级成员,鼠标悬浮在其上方,Excel会显示出成员属性Color的值
3.2 选中一个叶级成员,点击右键快捷菜单,Show Properties In Report --》Color,PivotTable会增加一列Color。
4 成员属性的值,如何通过MDX来查询
4.1 通过dimension properties语句来查询,这体现了MDX能查询更多的MetaData的优势。
select [Measures].[Unit Cost] on columns, [Dim Product].[Product Hierarchy].Members dimension properties [Dim Product].[Product Hierarchy].[Product Key].Color on rows from [Adventure Works DW2012]
查询结果如下
从左边列种选中一个叶级节点,双击点卡Member Properties对话框,查看成员的属性,最后一个是Color
4.2 通过Properties函数来查看
with member [Measures].Color as [Dim Product].[Product Hierarchy].CurrentMember.Properties("Color") select [Measures].Color on columns, [Dim Product].[Product Hierarchy].Members on rows from [Adventure Works DW2012]
5,MSDN上对成员属性的介绍
You can retrieve user-defined member properties using either the PROPERTIES keyword or the Properties function.
Using the PROPERTIES Keyword to Retrieve User-Defined Member Properties
The syntax that retrieves user-defined member properties is similar to that used to retrieve intrinsic level member properties, as shown in the following syntax:
DIMENSION PROPERTIES [Dimension.]Level.<Custom_Member_Property>
The PROPERTIES keyword appears after the set expression of the axis specification. For example, the following MDX query the PROPERTIES keyword retrieves the List Price and Dealer Price user-defined member properties and appears after the set expression that identifies the products sold in January:
SELECT CROSSJOIN([Ship Date].[Calendar].[Calendar Year].Members, [Measures].[Sales Amount]) ON COLUMNS, NON EMPTY Product.Product.MEMBERS DIMENSION PROPERTIES Product.Product.[List Price], Product.Product.[Dealer Price] ON ROWS FROM [Adventure Works] WHERE ([Date].[Month of Year].[January])
Using the Properties Function to Retrieve User-Defined Member Properties
Alternatively, you can access custom member properties with the Properties function. For example, the following MDX query uses the WITH keyword to create a calculated member consisting of the List Price member property:
WITH MEMBER [Measures].[Product List Price] AS [Product].[Product].CurrentMember.Properties("List Price") SELECT [Measures].[Product List Price] on COLUMNS, [Product].[Product].MEMBERS ON Rows FROM [Adventure Works]