Subselects 和 Subcube 中的導出成員
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
匯出成員是維度成員,其值是從運行時間表示式計算而來,而且可用於子選取和子庫,以更精確地定義查詢的 Cubespace。
在子空間中啟用匯出成員
SubQueries 連接字串屬性 ConnectionString 或 DBPROPMSMDSUBQUERIES 属性 支援的 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 運算式中的查詢匯出成員將會引發錯誤。