标签:
维度的每一个属性都有KeyColumns,NameColumn和ValueColumn
1,如何理解KeyColumns,NameColumn和ValueColumn?对一行记录有不同的标识列,但标识的是同一行记录。
对于int类型,占用存储空间小,容易聚合,适合做primary key,但是不易阅读;
char类型的数据,容易阅读,适合作为Name Column;
对于一个有具体类型的数据,其value必须能够做一些运算,例如Date类型,能够做Year(),dateadd()等运算,这些可以通过ValueColumn来进行。
示例,一个表Record(ID,Name,Value),有一行数据(1,20150201,1/2/2015)
那么ID=1是keyColumn,Name=20150201是NameColumn,Value=1/2/2015是ValueColumn。
2,在每一个维度属性的Source Properties中设置KeyColumns,NameColumn和ValueColumn
KeyColumns是必须设置列的
NameColumn 如果没有设置列,那么默认值是KeyColumn
ValueColumn 如果没有设置列,那么默认值是NameColumn
2.1,示例是DimDate维度的MonthNumberOfYear属性
KeyColumns 是MonthNumberOfYear,KeyColumns一般是Int类型的
NameColumn是EnglishMonthName,NameColumn是WChar类型的
ValueColumn是空的,默认值是NameColumn的列,即EnglishMonthName
2.2 查看KeyColumns,NameColumn和ValueColumn
2.2.1 直观上看,Month Number of Year 这个Level下的所有成员显示是NameColumn,是每个月的English Name
2.2.2通过MDX语句查询
WITH MEMBER Measures.ValueColumn as [Dim Date].[Month Number Of Year].&[4].MemberValue MEMBER Measures.KeyColumn as [Dim Date].[Month Number Of Year].&[4].Member_Key MEMBER Measures.NameColumn as [Dim Date].[Month Number Of Year].&[4].Member_Name SELECT {Measures.KeyColumn, Measures.NameColumn, Measures.ValueColumn} ON 0 FROM [Adventure Works DW2012]
查询结果如下
2.2.3 通过Member properties查看
SELECT [Dim Date].[Date Key] on COLUMNS, [Dim Date].[Month Number Of Year].[Month Number Of Year].members DIMENSION PROPERTIES KEY0 , LEVEL_NUMBER , LEVEL_UNIQUE_NAME , MEMBER_CAPTION , MEMBER_KEY , MEMBER_NAME , MEMBER_TYPE , MEMBER_UNIQUE_NAME , MEMBER_VALUE , UNIQUE_NAME ON ROWS FROM [Adventure Works DW2012]
维度属性的KeyColumns,NameColumn和ValueColumn
标签:
原文地址:http://www.cnblogs.com/ljhdo/p/4608280.html