內建成員屬性 (MDX)
因為提供者符合 OLE DB 規格的 OLAP 小節 (1999 年 3 月 (2.6 節)),所以 Microsoft SQL Server Analysis Services 支援此主題中列出的內建成員屬性。
[!附註]
SQL Server Analysis Services 以外的提供者可支援其他內建成員屬性。如需其他提供者支援之內建成員屬性的詳細資訊,請參閱這些提供者提供的文件。
成員屬性類型
SQL Server Analysis Services 支援的內建成員屬性有兩種類型:
區分內容的成員屬性
這些成員屬性必須在特定維度或層級的內容中使用,而且要將值提供給指定維度或階層的每個成員。不區分內容的成員屬性
這些成員屬性無法在特定的維度或層級的內容中使用,以及將值提供給座標軸上的所有成員。
不管內建成員屬性是否會區分內容,都適用以下使用方式規則:
您只能指定座標軸上預計之維度成員相關的內建成員屬性。
您可以利用不區分內容的內建成員屬性,在同一個查詢中混合區分內容的成員屬性要求。
您可以使用 PROPERTIES 關鍵字以查詢屬性。
以下各節將描述 SQL Server Analysis Services 中可用的各種區分內容及不區分內容的內建成員屬性,以及如何將 PROPERTIES 關鍵字與每種屬性類型搭配使用。
區分內容的成員屬性
所有維度成員及層級成員支援區分內容的內建成員屬性清單。下表列出這些區分內容的屬性。
屬性 |
描述 |
---|---|
ID |
內部維護用的成員識別碼。 |
Key |
成員的 MEMBERS 結構描述資料列集的 MEMBER_KEY 資料行中儲存的值。 |
Name |
成員的名稱。 |
區分內容屬性的 PROPERTIES 語法
您可以在特定維度或層級的內容中使用這些成員屬性,而且要將值提供給指定維度或階層的每個成員。
對於維度成員屬性,您可以在屬性名稱前面加上套用該屬性的維度名稱。下列範例會顯示適當語法:
DIMENSION PROPERTIES Dimension.Property_name
對於層級成員屬性,您可以在屬性名稱前面,只加上層級名稱,或者對於其他規格,則可加上維度及層級名稱。下列範例會顯示適當語法:
DIMENSION PROPERTIES [Dimension.]Level.Property_name
為了方便說明,您要傳回 [Sales] 維度中每個參考成員的所有名稱。若要傳回這些名稱,您要在多維度運算式 (MDX) 查詢中使用以下陳述式:
DIMENSION PROPERTIES [Sales].Name
不區分內容的成員屬性
所有成員支援同樣不顧內容的內建成員屬性清單。這些屬性能提供應用程式可用以加強使用者經驗的其他資訊。
下表列出 SQL Server Analysis Services 支援的不區分內容內建屬性。
[!附註]
MEMBERS 結構描述資料列集中的資料行支援下表列出的內建成員屬性。如需 MEMBERS 結構描述資料列集料表的詳細資訊,請參閱<MDSCHEMA_MEMBERS 資料列集>。
屬性 |
描述 |
---|---|
ACTION_TYPE |
代表成員上動作類型的位元遮罩。此屬性可以有下列其中一個值:
|
CAPTION |
與 MEMBER_CAPTION 相同。 |
CHILDREN_CARDINALITY |
成員擁有的子系數目。這可為一個估計值,因此您不應該依賴此值做為確實計數。提供者應會傳回最佳的可能估計值。 |
CUBE_NAME |
此一成員所屬 Cube 的名稱。 |
CUSTOM_ROLLUP |
自訂成員運算式。 |
CUSTOM_ROLLUP_PROPERTIES |
自訂成員屬性。 |
DESCRIPTION |
成員的可讀取描述。 |
DIMENSION_UNIQUE_NAME |
此一成員所屬維度的唯一名稱。對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。 |
HIERARCHY_UNIQUE_NAME |
階層架構的唯一名稱。如果該成員屬於多個階層,該成員所屬的每個階層都會有一個資料列。對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。 |
IS_DATAMEMBER |
指出成員是否為資料成員的布林值。 |
KEYx |
成員的索引鍵,其中 x 是索引鍵以零為基底的序數。KEY0 可用於複合和非複合索引鍵,而 KEY1、KEY2 等則只適用於複合索引鍵。Key0、Key1、Key2 等共同形成複合索引鍵。 |
LCIDx |
以地區設定識別碼十六進位值翻譯的成員標題,其中 x 是地區設定識別碼十進位值 (例如,代表加拿大英文的 LCID1009)。只有當翻譯的標題資料行繫結至資料來源時,才適用此功能。 |
LEVEL_NUMBER |
成員距根階層的距離。根層級為零。 |
LEVEL_UNIQUE_NAME |
成員所屬層級的唯一名稱。對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。 |
MEMBER_CAPTION |
與該成員關聯的標籤或標題。標題主要是供顯示之用。如果標題不存在,查詢就會傳回 MEMBER_NAME。 |
MEMBER_KEY |
原始資料類型的成員索引鍵值。MEMBER_KEY 是為回溯相容性而提供。 對於非複合索引鍵,MEMBER_KEY 的值與 KEY0 相同,對於複合索引鍵,MEMBER_KEY 屬性為 Null。 |
MEMBER_NAME |
成員的名稱。 |
MEMBER_TYPE |
成員的類型。此屬性可以有下列其中一個值:
MDMEMBER_TYPE_FORMULA 優先於 MDMEMBER_TYPE_MEASURE。因此,如果 Measures 維度有一個公式 (導出) 成員,導出成員的 MEMBER_TYPE 屬性為 MDMEMBER_TYPE_FORMULA。 |
MEMBER_UNIQUE_NAME |
成員的唯一名稱。對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。 |
MEMBER_VALUE |
原始類型的成員值。 |
PARENT_COUNT |
此成員擁有的父系數目。 |
PARENT_LEVEL |
成員的父系距階層之根層級的距離。根層級為零。 |
PARENT_UNIQUE_NAME |
成員之父系的唯一名稱。如果是根層級的任何成員,則會傳回 NULL。對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。 |
SKIPPED_LEVELS |
略過的成員層級數目。 |
UNARY_OPERATOR |
成員的一元運算子。 |
不區分內容屬性的 PROPERTIES 語法
使用以下語法指定會使用 PROPERTIES 關鍵字的內建、不區分內容的成員屬性:
DIMENSION PROPERTIES Property
請注意,此語法不允許依維度或層級限定屬性。因為座標軸的所有成員套用了不區分內容的內建成員屬性,所以無法限定屬性。
例如,指定 DESCRIPTION 內建成員屬性的 MDX 陳述式會有以下語法:
DIMENSION PROPERTIES DESCRIPTION
此陳述式會傳回座標軸維度中每個成員的描述。若要以 Dimension.DESCRIPTION 或 Level.DESCRIPTION 的維度或層級嘗試限定屬性,則無法驗證該陳述式。
範例
下列範例會根據使用 Aggregate 函數評估之使用者選取的 State-Province 成員值,傳回上一個時間週期銷售值衰退的轉售商計數。Hierarchize (MDX) 和 DrilldownLevel (MDX) 函數是用來傳回 Product 維度中產品類別目錄的衰退銷售值。Properties (MDX) 函數是用來傳回在資料行軸上所傳回之父成員的唯一名稱。
WITH MEMBER Measures.[Declining Reseller Sales] AS
Count
(Filter
(Existing
(Reseller.Reseller.Reseller)
, [Measures].[Reseller Sales Amount] <
(
[Measures].[Reseller Sales Amount]
,[Date].Calendar.PrevMember
)
)
)
MEMBER [Geography].[State-Province].x AS
Aggregate
(
{[Geography].[State-Province].&[WA]&[US]
, [Geography].[State-Province].&[OR]&[US]
}
)
SELECT NON EMPTY HIERARCHIZE
(AddCalculatedMembers
(
{DrillDownLevel
({[Product].[All Products]})
}
)
) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
FROM [Adventure Works]
WHERE
(
[Geography].[State-Province].x
, [Date].[Calendar].[Calendar Quarter].&[2003]&[4]
,[Measures].[Declining Reseller Sales]
)
下列範例會針對指定的地區設定,傳回 Adventure Works Cube 中 Product 維度的產品類別目錄成員的已翻譯標題。
WITH
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]