Share via


DrilldownLevel (MDX)

向下切入集合的成員,以低於集合中表示的最低層級。

指定要向下切入的層級是選擇性的,但如果您設定層級,您可以使用 層級運算式 索引層級 。 這些引數互斥。 最後,如果查詢中有匯出成員,您可以指定引數以將它們包含在資料列集中。

語法

DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])  

引數

Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。

Level_Expression
(選擇性)。 明確識別向下切入層級的 MDX 運算式。 如果您指定層級運算式,請略過下面的索引引數。

Index
(選擇性)。 有效的數值運算式,指定要向下切入集合內的階層編號。 您可以使用索引層級,而不是Level_Expression來明確識別要向下切入的層級。

Include_Calc_Members
(選擇性)。 旗標,指出是否要在向下切入層級包含匯出成員。

備註

DrilldownLevel 函式會根據指定集合中包含的成員,以階層順序傳回一組子成員。 順序會保留在指定集合的原始成員之間,不同之處在于函式結果集中包含的所有子成員會立即包含在其父成員之下。

假設多層級階層式資料結構,您可以明確選擇要向下切入的層級。 有兩種互斥的方式可以指定層級。 第一種方法是使用傳回層級的 MDX 運算式來設定level_expression 引數,另一種方法是使用指定依數位層級的數值運算式來指定 索引 引數。

如果指定了層級運算式,函式會擷取位於指定層級之成員的子系,以階層順序建構集合。 如果指定了層級運算式,而且該層級沒有成員,則會忽略層級運算式。

如果指定了索引值,則函式會擷取指定集合中參考之階層下一個最低層級的成員子系,以階層順序建構集合,前提是以零起始的索引。

如果未指定層級運算式或索引值,則函式會擷取指定集合中第一個維度之最低層級的成員子系,以階層順序建構集合。

查詢 XMLA 屬性 MdpropMdxDrillFunctions 可讓您驗證服務器為鑽探函式提供的支援層級;如需詳細資訊,請參閱 支援的 XMLA 屬性 (XMLA)。

範例

您可以使用 Adventure Works Cube,在 SSMS 的 MDX 查詢視窗中嘗試下列範例。

範例 1 - 示範最少語法

第一個範例顯示 DrilldownLevel 最小語法。 唯一必要的引數是集合運算式。 請注意,當您執行此查詢時,您會取得下一個層級的父 [所有類別] 和成員:[Accessories]、[Bikes]等等。 雖然這個範例很簡單,但它示範 DrilldownLevel 函式的基本用途 ,其向下切入到下面的下一個層級。

SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS  
FROM [Adventure Works]  

範例 2 - 使用明確索引層級的替代語法

此範例示範替代語法,其中索引層級是透過數值運算式來指定。 在此情況下,索引層級為 0。 如果是以零起始的索引,這是最低層級。

SELECT  
DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]},,0) ON COLUMNS  
FROM [Adventure Works]  

請注意,結果集與上一個查詢相同。 一般規則是,除非您想要從特定層級開始向下切入,否則不需要設定索引層級。 重新執行上一個查詢,將索引值設定為 1,然後設定為 2。 當索引值設定為 1 時,您會看到向下切入會從階層中的第二個層級開始。 當索引值設定為 2 時,向下切入會從第三個層級開始,在此範例中為最高層級。 數值運算式越高,索引層級越高。

範例 3 - 示範層級運算式

下一個範例示範如何使用層級運算式。 給定一組代表階層式結構的集合,使用層級運算式可讓您選擇階層中的層級來開始向下切入。

在此範例中,向下切入層級會從 [City] 開始,做為 DrilldownLevel 函式的第二個引數 。 當您執行此查詢時,向下切入會從華盛頓州和俄勒岡州的 [城市] 層級開始。 根據 DrilldownLevel 函式,結果集也包含下一個層級的成員 [郵遞區號]。

SELECT [Measures].[Internet Sales Amount] ON COLUMNS,  
   NON EMPTY (  
   DRILLDOWNLEVEL(  
       {[Customer].[Customer Geography].[Country].[United States],  
           DESCENDANTS(  
             { [Customer].[Customer Geography].[State-Province].[Washington],    
               [Customer].[Customer Geography].[State-Province].[Oregon]},   
               [Customer].[Customer Geography].[City]) } ,  
[Customer].[Customer Geography].[City] ) )  ON ROWS  
FROM [Adventure Works]  

範例 4 - 包括匯出成員

最後一個範例會顯示匯出成員,當您新增 include_calculated_members 旗標時,結果集底部會出現。 請注意,旗標會指定為第四個參數。

此範例的運作方式是,因為匯出成員與非匯出成員位於相同的層級。 匯出成員 [西海岸] 由 [美國] 的成員組成,加上 [美國] 以下一層的所有成員。

WITH MEMBER   
[Customer].[Customer Geography].[Country].&[United States].[West Coast] AS  
[Customer].[Customer Geography].[State-Province].&[OR]&[US] +  
[Customer].[Customer Geography].[State-Province].&[WA]&[US] +  
[Customer].[Customer Geography].[State-Province].&[CA]&[US]  
SELECT [Measures].[Internet Order Count] ON 0,  
DRILLDOWNLEVEL([Customer].[Customer Geography].[Country].&[United States],,,INCLUDE_CALC_MEMBERS) on 1  
FROM [Adventure Works]  

如果您只移除 旗標並重新執行查詢,您會得到相同的結果,減去匯出成員 [西海岸]。

另請參閱

MDX 函數參考 (MDX)