码迷,mamicode.com
首页 > 其他好文 > 详细

内部成员属性

时间:2015-06-30 14:49:25      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:

Intrinsic Member Properties 是每一个成员固有的属性,分为两类,一类是跟上下文相关的成员属性,一类是跟上下文无关的成员属性。

内部成员属性是系统提供的,开发者自定义的成员属性,叫做User-Defined Member Properties。

MSDN上解释:

Analysis Services exposes intrinsic properties on dimension members that you can include in a query to return additional data or metadata for use in a custom application, or to assist in model investigation or construction。

Intrinsic properties include ID, KEY, KEYx, and NAME, which are properties exposed by every member, at any level. You can also return positional information, such as LEVEL_NUMBER or PARENT_UNIQUE_NAME, among others.

 

1,SQL Server Analysis Services 支持以下两种类型的内部成员属性

1.1上下文相关的成员属性
这些成员属性必须在特定层次结构或级别的上下文中使用,用于为指定维度或级别的每个成员提供值。
要显示某一个成员的KEY 属性,必须包括该成员的完整路径:
with MEMBER [Measures].[Parent Member Key] AS 
    [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
select [Measures].[Parent Member Key] on 0
from [Adventure Works DW2012]

1.2非上下文相关的成员属性

这些成员属性不能在特定维度或级别的上下文中使用,而是为某个轴上的所有成员返回值。与上下文不相关的属性是独立的,不包括路径信息。
例如,DIMENSION PROPERTIES Key0,并不需要包括路径信息,是该维度上的所有成员都需要返回的属性值。
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]

 

2,上下文相关的属性

所有维度成员和级别成员都支持一列上下文相关的内部成员属性。

属性

说明                                           

ID    

在内部维护的成员 ID。                                           

Key 

以原始数据类型表示的成员键的值。MEMBER_KEY 用于向后兼容。 对于非组合键,MEMBER_KEY 具有与 KEY0 相同的值;对于组合键,MEMBER_KEY 属性为 null。

KEYx

成员键,其中 x 是成员键的序号,起始值为零。 KEY0 适用于组合键和非组合键,但是主要用于组合键。

对于组合键,KEY0、KEY1、KEY2 等共同构成了组合键。 您可以在查询中独立使用它们以返回组合键的该部分。 例如,指定 KEY0 返回组合键的第一部分,指定 KEY1 返回组合键的下一部分等等。

如果键不是组合键,则 KEY0 与 Key 等效。                                           

请注意,KEYx 可以在上下文中使用,也可以不带上下文使用。因此,它显示在两个列表中。                                            

Name    

成员的名称。

3,非上下文相关的内部属性

所有成员都支持一列内部成员属性,这些属性不因上下文而改变。这些属性提供了一些附加信息,可供应用程序用来改善用户的体验。

属性(部分)

说明                                           

KEYx 

成员键,其中 x 是成员键的序号,起始值为零。  KEY0 可用于组合键和非组合键。

如果键不是组合键,则 KEY0 与 Key 等效。                                           

对于组合键,KEY0、KEY1、KEY2 等共同构成了组合键。 您可以在查询中独立引用它们以返回组合键的该部分。 例如,指定 KEY0 返回组合键的第一部分,指定 KEY1 返回组合键的下一部分等等。

请注意,KEYx 可以在上下文中使用,也可以不带上下文使用。  因此,它显示在两个列表中。                                           

LEVEL_NUMBER   

成员距层次结构的根的距离。根级别为零。

LEVEL_UNIQUE_NAME

成员所属的级别的唯一名称。对于通过限定生成唯一名称的访问接口,此名称的各组成部分之间用分隔符分隔。

MEMBER_CAPTION 

与成员相关的标签或标题。标题主要用于显示目的。 如果不存在标题,查询将返回 MEMBER_NAME。

MEMBER_KEY 

以原始数据类型表示的成员键的值。 MEMBER_KEY 用于向后兼容。 对于非组合键,MEMBER_KEY 具有与 KEY0 相同的值;对于组合键,MEMBER_KEY 属性为 null。

MEMBER_NAME 

成员的名称。                                           

MEMBER_UNIQUE_NAME

成员的唯一名称。对于通过限定生成唯一名称的访问接口,此名称的各组成部分之间用分隔符分隔。

MEMBER_VALUE 

以原始类型表示的成员的值。                                           

UNIQUE_NAME 

成员的完全限定名称,它采用以下格式:[dimension].[level].[key6.]                                           

非上下文相关属性的 PROPERTIES 语法

使用以下语法指定使用 PROPERTIES 关键字的非上下文相关的内部成员属性:                               

DIMENSION PROPERTIES Property              

请注意,此语法不允许使用维度或级别来限定属性,非上下文相关的内部成员属性适用于某条轴上的所有成员。

例如,指定 DESCRIPTION 内部成员属性的 MDX 语句具有以下语法:                               

DIMENSION PROPERTIES DESCRIPTION              

此语句返回轴维度中各个成员的说明。如果试图使用维度或级别限定属性,如在 Dimension.DESCRIPTION 或 Level.DESCRIPTION 中,则此语句将不会生效。

4,示例

示例 1:在查询中使用上下文相关的内部属性              

以下示例返回每个产品类别的父 ID、键和名称。 请注意属性如何公开为度量值。 这允许您在运行查询时在单元集中查看属性,而非在 SSMS 的“成员属性”对话框中查看。 您可能运行类似的查询以从部署的多维数据集检索成员元数据。

WITH
MEMBER [Measures].[Parent Member ID] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("ID")
MEMBER [Measures].[Parent Member Key] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
MEMBER [Measures].[Parent Member Name] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("Name")
SELECT
 {[Measures].[Parent Member ID], [Measures].[Parent Member Key], [Measures].[Parent Member Name] } on COLUMNS, 
 [Product].[Product Categories].AllMembers on ROWS
FROM [Adventure Works]

示例 2:非上下文相关的内部属性

以下示例是非上下文相关的内部属性的列表。在 SSMS 中运行查询后,单击各个成员可以在“成员属性”对话框中查看属性。

SELECT [Measures].[Sales Amount Quota] on COLUMNS,
[Employee].[Employees].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]
WHERE [Employee].[Employee Department].[Department].&[Sales]

示例3:通过属性来查看KeyColumns,NameColumn和ValueColumn的值

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]

 

内部成员属性

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4610140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!