MDX 資料定義 - 建立成員

建立一個計算過的成員。

Syntax

  
CREATE [ SESSION ] [HIDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name   
   AS MDX_Expression  
      [,Property_Name = Property_Value, ...n]  
......[,SCOPE_ISOLATION = CUBE]  

Arguments

Cube_Name
一個有效的字串表達式,提供將建立成員的立方體名稱。

Member_Name
一個有效的字串表達式,提供成員名稱。 指定一個完全限定的名稱,以便在衡量維度以外的其他維度內建立成員。 若未提供完整合格會員名稱,該會員將在衡量維度中建立。

MDX_Expression
一個有效的多維表達(MDX)表達式。

Property_Name
一個有效字串,提供計算出的成員屬性名稱。

Property_Value
一個有效的純量表達式,用來定義計算出的成員屬性的值。

Remarks

CREATE MEMBER 陳述式定義了計算出的成員,這些成員在整個會話中皆可用,因此可以在會話中多次查詢中使用。 欲了解更多資訊,請參閱建立 Session-Scoped 計算成員(MDX)。

你也可以定義一個計算過的成員,供單一查詢使用。 要定義一個計算出的成員且限制於單一查詢,請使用SELECT語句中的WITH子句。 欲了解更多資訊,請參閱建立 Query-Scoped 計算成員(MDX)。

Property_Name 可以指標準或可選的計算成員屬性。 標準構件特性將在本主題後面列出。 以 CREATE MEMBER 建立但未包含 SESSION 值的計算成員具有會話範圍。 此外,計算出的成員定義內的字串會以雙引號分隔。 這與 OLE DB 定義的方法不同,後者規定字串應以單引號分隔。

指定目前連接的立方體以外的其他立方體會出錯。 因此,你應該用 CURRENTCUBE 來代替立方體名稱來表示目前的立方體。

欲了解更多由 OLE DB 定義的成員屬性,請參閱 OLE DB 文件。

Scope

計算出的成員可能出現在下表列出的範圍內。

查詢範圍
計算成員的可見性與壽命僅限於查詢。 計算出的成員會在個別查詢中定義。 查詢範圍會覆蓋會話範圍。 欲了解更多資訊,請參閱建立 Query-Scoped 計算成員(MDX)。

會話範圍
計算成員的可見性與壽命僅限於其創建的會話階段。 (若對計算成員發出 DROP MEMBER 聲明,壽命會少於會話長度。)CREATE MEMBER 陳述式會建立一個計算過的成員,並具有會話範圍。

範圍隔離

當立方體多維表達式(MDX)腳本包含計算成員時,預設情況下,計算出的成員會先解決,先於任何會話範圍計算及查詢定義計算之前解決。

Note

在某些情況下, Aggregate(MDX) 函數與 VisualTotals(MDX) 函數不會呈現此行為。

此行為允許一般客戶端應用程式處理包含複雜計算的立方體,而無需考慮計算的具體實作。 然而,在某些情況下,你可能想先執行會話或查詢範圍的計算成員,再進行立方體中的某些計算,而 Aggregate 函式和 VisualTotals 函式都不適用。 為達成此目標,請使用SCOPE_ISOLATION計算性質。

Example

以下腳本是一個情境範例,該情境中需要SCOPE_ISOLATION計算性質才能產生正確結果。

Cube 的 MDX 腳本:

CREATE MEMBER CURRENTCUBE.Measures.ProfitRatio AS 'Measures.[Store Sales]/Measures.[Store Cost]', SOLVE_ORDER = 10  

MDX 查詢:

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS  
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5  
SELECT {USAWithoutWA} ON 0 FROM SALES  
WHERE ProfitRatio  

前一個查詢的期望結果是美國沒有WA的銷售額與沒有WA的美國商店成本的比率。 前一個查詢無法回傳想要的結果;它回傳的是美國減去華盛頓比值的比值,這是一個毫無意義的結果。 為了達到想要的結果,你可以使用SCOPE_ISOLATION計算特性。

使用 SCOPE_ISOLATION 計算特性的 MDX 查詢:

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS  
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5  
,SCOPE_ISOLATION=CUBE  
SELECT {USAWithoutWA} ON 0 FROM SALES  
WHERE ProfitRatio  

標準性質

每個計算出來的成員都有一組預設屬性。 當客戶端應用程式連接到分析服務時,預設屬性會被支援或可由管理員選擇支援。

根據方塊定義,可能會有額外的成員屬性。 以下屬性代表與立方體維度層級相關的資訊。

屬性標識碼 Meaning
SOLVE_ORDER 當計算出的成員與另一個計算成員相交時,計算出的成員解的順序。
FORMAT_STRING 一個 Office 風格的格式字串,客戶端應用程式在顯示儲存格值時可以使用。
可見 一個表示計算成員是否在結構列集中可見的值。 可透過 AddCalculatedMembers 函式將可見的計算成員加入集合。 非零值表示計算出的構件是可見的。 此屬性的預設值為可見( Visible)。

計算出來但不可見(此值設為零)的元件通常作為較複雜計算元件的中間步驟。 這些計算出的成員也可以被其他類型的成員稱為,例如度量。
NON_EMPTY_BEHAVIOR 用於判斷計算成員在解析空格時行為的度量或集合。

** 警告 ** 此屬性已被淘汰。 避免設定。 詳情請參閱 SQL Server 2014 中已棄用的分析服務功能。
說明 一個字串,客戶端應用程式用來作為成員的說明。
DISPLAY_FOLDER 一個字串,用來識別客戶端應用程式用來顯示成員的顯示資料夾路徑。 資料夾層級分隔符由用戶端應用程式定義。 對於Analysis Services提供的工具與用戶端,反斜線(\)即為層級分隔符。 若要為定義成員提供多個顯示資料夾,請使用分號(;)來分隔這些資料夾。
ASSOCIATED_MEASURE_GROUP 該成員所關聯的測度群名稱。