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。
我遇到过这样的问题:
我的多维数据集 [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。