共用方式為


Subselects 和 Subcube 中的導出成員

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

匯出成員是維度成員,其值是從運行時間表示式計算而來,而且可用於子選取和子庫,以更精確地定義查詢的 Cubespace。

在子空間中啟用匯出成員

SubQueries 連接字串屬性 ConnectionStringDBPROPMSMDSUBQUERIES 属性 支援的 XMLA 屬性 (XMLA) 定義子選擇或子集上導出成員或計算集的行為或津貼。 在此文件的內容中,除非另有說明,否則 subselect 是指子選取和 Subcube。

SubQueries 屬性允許下列值。

價值 描述
0 子選取或 Subcube 中不允許導出成員。

如果參考導出成員,評估子選擇或 Subcube 時,就會引發錯誤。
1 子選擇或 Subcube 中允許導出成員,但在傳回的子空間中不會引進任何遞增成員。
2 在子選擇或 Subcube 中允許導出成員,而遞增成員則會在傳回的子空間中引進。 此外,在選取匯出成員時,允許混合粒度。

在 SubQueries 屬性中使用 1 或 2 的值可讓匯出成員用來篩選子選取的傳回子空間。

範例將協助釐清概念;必須先建立匯出成員,然後發出子選取查詢,以顯示上述行為。

下列範例會建立導出成員,將 [Seattle Metro] 新增為 [Geography] 的城市。[地理位置] 華盛頓州下的階層。

若要執行此範例,連接字串必須包含值為 1 的 SubQueries 屬性,而且所有 MDX 語句都必須在相同的工作階段中執行。

重要

如果您使用 Management Studio 來測試查詢,請按兩下連接管理員上的 [選項] 按鈕來存取其他連接字串屬性窗格,您可以在其中輸入 subqueries=1 或 2,以允許子空間中的匯出成員。

第一個問題是下列 MDX 運算式:

  
CREATE MEMBER [Adventure Works].[Geography].[Geography].[State-Province].&[WA]&[US].[Seattle Metro Agg]   
   AS  AGGREGATE(   
                 {   
                   [Geography].[Geography].[City].&[Bellevue]&[WA]  
                 , [Geography].[Geography].[City].&[Issaquah]&[WA]  
                 , [Geography].[Geography].[City].&[Redmond]&[WA]  
                 , [Geography].[Geography].[City].&[Seattle]&[WA]  
                 }  
                )    

然後發出下列 MDX 查詢,以查看子選擇中允許的匯出成員。

Select [Date].[Calendar Year].members on 0,  
       [Geography].[Geography].allmembers on 1  
from (Select {[Geography].[Geography].[State-Province].&[WA]&[US].[Seattle Metro Agg]} on 0 from [Adventure Works])  
Where [Measures].[Reseller Sales Amount]  

取得的結果如下:

所有期間 CY 2011 CY 2012 CY 2013 CY 2014
西雅圖地鐵阿格 $2,383,545.69 1$291,248.93 $763,557.02 $915,832.36 $412,907.37

如前所述,當 SubQueries=1 時,傳回的子空間中不存在 [Seattle Metro] 的升階。[Geography].allmembers 只包含導出成員。

如果使用 SubQueries=2 執行範例,在連接字串中取得的結果如下:

所有期間 CY 2001 CY 2002 CY 2003 CY 2004
所有地理位置 (null) (null) (null) (null) (null)
美國 (null) (null) (null) (null) (null)
華盛頓 (null) (null) (null) (null) (null)
西雅圖地鐵阿格 $2,383,545.69 $291,248.93 $763,557.02 $915,832.36 $412,907.37

如先前所述,使用 SubQueries=2 時,傳回的子空間中有 [Seattle Metro] 的升階,但這些成員沒有值存在,因為沒有一般成員提供匯總。 因此,在此範例中,會針對導出成員的所有遞增成員提供NULL值。

若要瞭解上述行為,它有助於了解導出成員不會像一般成員一樣參與其父系的匯總;前者表示,僅計算成員篩選會導致空的上階,因為沒有一般成員會參與所產生子空間的匯總值。 如果您將一般成員新增至篩選表達式,則匯總值會來自這些正則成員。 繼續上述範例,如果俄勒岡州的波特蘭市和華盛頓的 Spokane 市會新增至計算成員出現的相同軸:如下一個 MDX 運算式所示:

Select [Date].[Calendar Year].members on 0,  
       [Geography].[Geography].allmembers on 1  
from (Select {  
               [Seattle Metro Agg]  
             , [Geography].[Geography].[City].&[Portland]&[OR]  
             , [Geography].[Geography].[City].&[Spokane]&[WA]  
             } on 0 from [Adventure Works]  
     )  
Where [Measures].[Reseller Sales Amount]  

取得下列結果。

所有期間 CY 2001 CY 2002 CY 2003 CY 2004
所有地理位置 $235,171.62 $419.46 $4,996.25 $131,788.82 $97,967.09
美國 $235,171.62 $419.46 $4,996.25 $131,788.82 $97,967.09
俄勒岡州 $30,968.25 $419.46 $4,996.25 $17,442.97 $8,109.56
波特蘭 $30,968.25 $419.46 $4,996.25 $17,442.97 $8,109.56
97205 $30,968.25 $419.46 $4,996.25 $17,442.97 $8,109.56
華盛頓 $204,203.37 (null) (null) $114,345.85 $89,857.52
斯波坎 $204,203.37 (null) (null) $114,345.85 $89,857.52
99202 $204,203.37 (null) (null) $114,345.85 $89,857.52
西雅圖地鐵阿格 $2,383,545.69 $291,248.93 $763,557.02 $915,832.36 $412,907.37

在上述結果中,[所有地理位置]、[美國]、[俄勒岡] 和 [華盛頓] 的匯總值來自匯總 &[波特蘭]&[OR] 和 &[spokane]&[WA] 的子代。 沒有任何來自匯出成員。

言論

子選取或 Subcube 表達式中只允許全域或會話導出成員。 在評估子選取或 Subcube 表達式時,MDX 運算式中的查詢匯出成員將會引發錯誤。

另請參閱

ConnectionString
查詢中的 子選取
支援的 XMLA 屬性 (XMLA)