MDX属性值键

时间:2016-02-19 14:31:57

标签: ssas mdx olap

我遇到了这样的问题: 我的多维数据集[Project_sales]中有一个维度[Default],其中一个层次结构[Sales_planning_RP]

我为这个维度创建了一个自定义属性,并将其命名为“Object”。 当我创建它时,我被要求:

1)财产密钥
2)财产价值

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

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

2)[Object_name] ex:('Object#3213,editable')< -This is what It get

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

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

这给了我Object_name 所以我的问题是如何使用MDX获取我的属性“对象”的密钥?

我的尺寸属性: http://i.stack.imgur.com/N2Aej.png

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

此层次结构的每个元素都具有属性“Object”,可以通过以下方式调用它:

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

在属性“对象”的属性窗口(在我的图片中)中有2个属性: 1)KeyColumns内 2)NameColumns

我再说一遍:“对象”这里不是维度的成员,它是一个属性! 它有自己的钥匙和名称。

我可以得到它的名字,但无法理解如何获取它的密钥,它也被加载到立方体中。

查看我的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>

1 个答案:

答案 0 :(得分:0)

好的,现在很清楚了! 属性的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/