MDX 属性值键

MDX Attribute Value Key

我遇到过这样的问题: 我的多维数据集 [Sales_planning_RP].

中有一个维度 [Project_sales] 和一个层次结构 [Default]

我为此维度创建了自定义 属性 并将其命名为 "Object"。 当我创建它时,我被要求:

1)属性键
2)属性值

现在我有了这个维度的来源-table,还有 2 个附加字段:

1) [Object_code] ex:('O01') <-这就是我需要的(见下面的问题)

2) [Object_name] 例如:('Object # 3213, editable') <-这就是我得到的

但我在 OLAP 中只看到一个 属性:

[Project_sales].[Default].CurrentMember.Properties("Object")

这只给我 Object_name。
所以我的问题是如何使用 MDX 获得 属性 "Object" 的密钥?

我的维度属性: http://i.stack.imgur.com/N2Aej.png

我的维度具有以下 "parent_child" 层次结构:
项目->对象->Element_of_area

这个层级的每个元素都有属性"Object",可以这样调用:

[Project_sales].[Default].CurrentMember.Properties("Object")

在属性 "Object" 的属性 window(在我的图片中)中有 2 个属性: 1)关键列 2)名称列

我再说一遍:"Object"这里不是维度的成员,是属性! 它有自己的密钥和名称。

我能得到它的名字,但不知道如何得到它的密钥,它也被加载到cube中。

看看我的 member_properties 列表: image_2

这里是我的维度的 XMLA 代码的一部分,目的是让事情变得更清楚: <Attribute> <Annotations> <Annotation> <Name>TypeOfInformation</Name> <Value>1</Value> </Annotation> <Annotation> <Name>TypeOfNameInformation</Name> <Value>1</Value> </Annotation> <Annotation> <Name>P4SSAMOVersion</Name> <Value>2</Value> </Annotation> </Annotations> <ID>Object</ID> <Name>Object</Name> <KeyColumns> <KeyColumn> <DataType>WChar</DataType> <DataSize>40</DataSize> <Source xsi:type="ColumnBinding"> <TableID>_x0036_Project_sales</TableID> <ColumnID>Object_code</ColumnID> </Source> </KeyColumn> </KeyColumns> <NameColumn> <DataType>WChar</DataType> <DataSize>255</DataSize> <Source xsi:type="ColumnBinding"> <TableID>_x0036_Project_sales</TableID> <ColumnID>Object_name</ColumnID> </Source> </NameColumn> <OrderBy>Key</OrderBy> <MembersWithData>NonLeafDataHidden</MembersWithData> <AttributeHierarchyVisible>false</AttributeHierarchyVisible> </Attribute>

好了,现在清楚了! Attribute 有 3 个可能包含数据的属性: 1)钥匙 2)姓名 3)值

如果Name不为空且Key不为空,则在调用.Properties()函数时得到Name。 如果Name为空且Key不为空,则得到Key。

这是来源:https://www.mssqltips.com/sqlservertip/3271/sql-server-analysis-server-ssas-keycolumn-vs-namecolumn-vs-valuecolumn/