MDX 匯出成員 - Query-Scoped 匯出成員

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

如果單一多維度表示式 (MDX) 查詢只需要匯出成員,您可以使用WITH關鍵詞來定義該導出成員。 使用WITH關鍵詞建立的匯出成員,在查詢完成執行之後已不存在。

如本主題所述,WITH 關鍵詞的語法相當有彈性,甚至允許匯出成員以另一個導出成員為基礎。

注意

如需匯出成員的詳細資訊,請參閱在 MDX 中建置匯出成員

WITH 關鍵詞語法

使用下列語法將 WITH 關鍵詞新增至 MDX SELECT 語句:

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ] SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ]FROM <SELECT subcube clause> [ <SELECT slicer axis clause> ][ <SELECT cell property list clause> ]  
<SELECT WITH clause> ::=  
   ( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>) | <CREATE MEMBER body clause> ::= Member_Identifier AS 'MDX_Expression'  
   [ <CREATE MEMBER property clause> [ , <CREATE MEMBER property clause> ... ] ]  
<CREATE MEMBER property clause> ::=  
   ( MemberProperty_Identifier = Scalar_Expression )  
  

在WITH關鍵詞的語法中,Member_Identifier 值是匯出成員的完整名稱。 這個完整名稱包含與導出成員相關聯的維度或層級。 MDX_Expression 值會在評估表達式值之後傳回導出成員的值。 計算成員的內建數據格屬性值可以選擇性地指定,方法是在 MemberProperty_Identifier 值中提供儲存格屬性的名稱,以及 Scalar_Expression 值中的儲存格屬性值。

WITH 關鍵詞範例

下列 MDX 查詢會定義計算成員,[Measures].[Special Discount],根據原始折扣金額計算特殊折扣。

WITH   
   MEMBER [Measures].[Special Discount] AS  
   [Measures].[Discount Amount] * 1.5  
SELECT   
   [Measures].[Special Discount] on COLUMNS,  
   NON EMPTY [Product].[Product].MEMBERS  ON Rows  
FROM [Adventure Works]  
WHERE [Product].[Category].[Bikes]  

您也可以在階層內的任何時間點建立導出成員。 例如,下列 MDX 查詢會定義假設 Sales Cube 的 [BigSeller] 匯出成員。 這個導出成員會判斷指定的商店是否至少有 100.00 個啤酒和葡萄酒的單位銷售。 不過,查詢會建立 [BigSeller] 導出成員,而不是 [Product] 維度的子成員,而是建立為 [Beer and Wine] 成員的子成員。

WITH   
   MEMBER [Product].[Beer and Wine].[BigSeller] AS  
  IIf([Product].[Beer and Wine] > 100, "Yes","No")  
SELECT  
   {[Product].[BigSeller]} ON COLUMNS,  
   Store.[Store Name].Members ON ROWS  
FROM Sales  
  

匯出成員不一定只相依於 Cube 中的現有成員。 匯出成員也可以以相同 MDX 運算式中定義的其他匯出成員為基礎。 例如,下列 MDX 查詢會使用第一個匯出成員 [Measures].[Special Discount]中建立的值來產生第二個匯出成員的值,[Measures].[Special Discounted Amount]

WITH   
   MEMBER [Measures].[Special Discount] AS  
   [Measures].[Discount Percentage] * 1.5,   
   FORMAT_STRING = 'Percent'  
  
   MEMBER [Measures].[Special Discounted Amount] AS  
   [Measures].[Reseller Average Unit Price] * [Measures].[Special Discount],   
   FORMAT_STRING = 'Currency'  
  
SELECT   
   {[Measures].[Special Discount], [Measures].[Special Discounted Amount]} on COLUMNS,  
   NON EMPTY [Product].[Product].MEMBERS  ON Rows  
FROM [Adventure Works]  
WHERE [Product].[Category].[Bikes]  
  

另請參閱

MDX 函數參考 (MDX)
SELECT 語句 (MDX)
建立 Session-Scoped 導出成員 (MDX)