建立一個計算過的成員。
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 | 該成員所關聯的測度群名稱。 |