다음을 통해 공유


DrilldownLevel(MDX)

집합의 멤버를 집합에 표시된 최하위 수준에서 한 수준 아래로 드릴다운합니다.

드릴다운할 수준의 지정은 선택사항이지만 수준을 설정하면 level expression 또는 index level를 사용할 수 있습니다. 이러한 인수는 함께 사용될 수 없습니다. 마지막으로 계산 멤버가 쿼리에 있으면 인수를 지정하여 계산 멤버를 행 집합에 포함할 수 있습니다.

구문

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 인수를 설정하는 것이고, 두 번째 방법은 숫자로 수준을 지정하는 숫자 식을 사용하여 index 인수를 지정하는 것입니다.

수준 식이 지정된 경우 이 함수는 지정된 수준에 있는 해당 멤버의 자식만 검색하여 계층적 순서로 집합을 구성합니다. 수준 식이 지정되어 있지만 해당 수준에 멤버가 없는 경우 이 수준 식은 무시됩니다.

인덱스 값이 지정된 경우 함수는 0부터 시작하는 인덱스에 따라 지정된 집합에서 참조되는 계층의 그 다음 최하위 수준에 있는 멤버의 자식만 검색하여 집합을 계층적 순서로 구성합니다.

수준 식과 인덱스 값이 모두 지정되지 않은 경우 이 함수는 지정된 집합에서 참조되는 첫 번째 차원의 최하위 수준에 있는 멤버의 자식만 검색하여 집합을 계층적 순서로 구성합니다.

XMLA 속성 MdpropMdxDrillFunctions를 쿼리하면 서버에서 드릴 함수에 제공하는 지원 수준을 확인할 수 있습니다. 자세한 내용은 지원되는 XMLA 속성(XMLA)을 참조하세요.

Adventure Works 큐브를 사용하여 SSMS의 MDX 쿼리 창에서 다음 예를 시도해 볼 수 있습니다.

예 1 – 최소 구문 입증

첫 번째 예에서는 DrilldownLevel에 대한 최소 구문을 보여 줍니다. 집합 식 인수만 필요합니다. 이 쿼리를 실행하면 바로 아래 수준인 [Accessories], [Bikes] 등의 부모 [All Categories] 및 멤버가 아래로 이동합니다. 이 예는 간단하지만 아래의 그 다음 수준으로 드릴다운하는 DrilldownLevel 함수의 기본 목적을 보여 줍니다.

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

예 2 – 명시적 인덱스 수준을 사용하는 대체 구문

이 예는 숫자 식을 통해 인덱스 수준이 지정된 대체 구문을 보여 줍니다. 이 경우 인덱스 수준은 0입니다. 0부터 시작하는 인덱스의 경우 이 수준이 최하위 수준입니다.

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

결과 집합은 이전 쿼리와 동일합니다. 일반적으로 드릴다운을 특정 수준에서 시작하려는 경우를 제외하고 인덱스 수준을 설정할 필요가 없습니다. 인덱스 값을 1로 설정한 다음 2로 설정하여 이전 쿼리를 다시 실행합니다. 인덱스 값을 1로 설정한 경우 드릴다운이 계층의 두 번째 수준에서 시작됩니다. 인덱스 값을 2로 설정하면 드릴다운이 이 예의 최상위 수준인 세 번째 수준에서 시작합니다. 숫자 식이 높을수록 인덱스 수준이 더 높습니다.

예 3 – 수준 식 보기

다음 예는 수준 식을 사용하는 방법을 보여 줍니다. 계층 구조를 나타내는 집합의 경우 수준 식을 사용하면 드릴다운을 시작할 계층에서 수준을 선택할 수 있습니다.

이 예에서는 드릴다운 수준이 DrilldownLevel 함수의 두 번째 인수인 [City]에서 시작합니다. 이 쿼리를 실행하면 드릴다운이 Washington 및 Oregon 주에 대한 [City] 수준에서 시작합니다. DrilldownLevel 함수에 따라 결과 집합에 바로 아래 수준인 [Postal codes]의 멤버가 포함되는 경우도 있습니다.

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 플래그를 추가할 때 결과 집합의 맨 아래 표시되는 계산 멤버를 보여 줍니다. 플래그는 네 번째 매개 변수로 지정됩니다.

이 예는 계산 멤버가 비계산 멤버와 동일한 수준에 있으므로 작용합니다. 계산 멤버 [West Coast]는 [United States]의 멤버와 [United States] 한 수준 아래의 모든 멤버들로 구성됩니다.

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]

플래그를 제거하고 쿼리를 다시 실행하면 [West Coast] 계산 멤버만 제외하고 동일한 결과가 표시됩니다.

참고 항목

참조

MDX 함수 참조(MDX)