zoukankan      html  css  js  c++  java
  • 维度属性的KeyColumns,NameColumn和ValueColumn

     

    维度的每一个属性都有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]
    复制代码

    --业精于勤而荒于嬉,行成于思而毁于随-- --欢迎转载,转载请注明出处--
    http://www.cnblogs.com/ljhdo/p/4608280.html
  • 相关阅读:
    C语言memmove()函数: 复制内存内容(可以重叠的内存块)
    #pragma pack(n)
    c++中sizeof的理解
    c/c++gdb下和发布版本下输出地址不同
    LeetCode 141. Linked List Cycle
    LeetCode 143. Reorder List
    TCP简介(一)
    通过cat方式生成yum源
    手动添加ceph的mds
    Linux 配置nfs
  • 原文地址:https://www.cnblogs.com/sthinker/p/5966571.html
Copyright © 2011-2022 走看看