Share via


기본 멤버 속성(MDX)

1999년 3월자(2.6) OLE DB 사양의 OLAP 섹션을 준수하는 공급자로서 Microsoft SQL Server Analysis Services는 이 항목에 나열된 기본 멤버 속성을 지원합니다.

[!참고]

SQL Server Analysis Services 이외의 공급자가 기본 멤버 속성을 추가로 지원할 수도 있습니다. 다른 공급자가 지원하는 기본 멤버 속성에 대한 자세한 내용은 해당 공급자가 제공하는 설명서를 참조하십시오.

멤버 속성의 유형

SQL Server Analysis Services에서 지원하는 기본 멤버 속성은 다음 두 가지 유형입니다.

  • 상황에 맞는 멤버 속성
    이 유형의 멤버 속성은 특정 차원 또는 수준의 컨텍스트에서 사용해야 하고 지정한 차원 또는 수준의 각 멤버에 대한 값을 제공합니다.

  • 상황에 맞지 않는 멤버 속성
    이 유형의 멤버 속성은 특정 차원 또는 수준의 컨텍스트에서 사용할 수 없고 한 축의 모든 멤버에 대한 값을 제공합니다.

기본 멤버 속성이 상황에 맞든 맞지 않든 상관없이 다음의 사용 규칙이 적용됩니다.

  • 축에 표시되는 차원 멤버와 관련된 기본 멤버 속성만 지정할 수 있습니다.

  • 상황에 맞지 않는 기본 멤버 속성을 가진 같은 쿼리에서 상황에 맞는 멤버 속성에 대한 요청을 혼합할 수 있습니다.

  • PROPERTIES 키워드를 사용하여 속성에 대해 쿼리합니다.

다음 섹션에서는 SQL Server Analysis Services에서 사용할 수 있는 다양한 상황에 맞는 기본 멤버 속성과 상황에 맞지 않는 기본 멤버 속성을 모두 설명하고 PROPERTIES 키워드를 각 유형의 속성과 함께 사용하는 방법을 설명합니다.

상황에 맞는 멤버 속성

모든 차원 멤버와 수준 멤버는 상황에 맞는 기본 멤버 속성 목록을 지원합니다. 다음 표에서는 이러한 상황에 맞는 속성을 나열합니다.

속성

설명

ID

내부적으로 유지 관리되는 멤버 ID입니다.

Key

해당 멤버에 대한 MEMBERS 스키마 행 집합의 MEMBER_KEY 열에 저장된 값입니다.

Name

멤버의 이름입니다.

상황에 맞는 속성에 대한 PROPERTIES 구문

특정 차원 또는 수준의 컨텍스트에서 이 멤버 속성을 사용하고 지정한 차원 또는 수준의 각 멤버에 대한 값을 제공합니다.

차원 멤버 속성의 경우 속성 이름 앞에 해당 속성이 적용되는 차원 이름을 둡니다. 다음 예에서는 적합한 구문을 보여 줍니다.

DIMENSION PROPERTIES Dimension.Property_name

수준 멤버 속성의 경우 속성 이름 앞에 단순히 수준 이름만 두거나 추가 지정을 위해 차원 이름과 수준 이름을 앞에 둘 수 있습니다. 다음 예에서는 적합한 구문을 보여 줍니다.

DIMENSION PROPERTIES [Dimension.]Level.Property_name

이를 보여 주기 위해 [Sales] 차원에서 참조된 각 멤버의 이름을 모두 반환할 수도 있을 것입니다. 이러한 이름을 반환하려면 MDX 쿼리에 다음과 같은 문을 사용하면 됩니다.

DIMENSION PROPERTIES [Sales].Name

상황에 맞지 않는 멤버 속성

모든 멤버가 컨텍스트에 상관없이 동일한 기본 멤버 속성 목록을 지원합니다. 이러한 속성들은 사용자에게 보다 나은 경험을 주기 위해 응용 프로그램에서 사용할 수 있는 정보를 추가로 제공합니다.

다음 표에서는 SQL Server Analysis Services에서 지원하는 상황에 맞지 않는 기본 속성에 대해 설명합니다.

[!참고]

MEMBERS 스키마 행 집합의 열은 다음 표에 나열된 기본 멤버 속성을 지원합니다. MEMBERS 스키마 행 집합에 대한 자세한 내용은 MDSCHEMA_MEMBERS 행 집합을 참조하십시오.

속성

설명

ACTION_TYPE

멤버에 대한 동작 유형을 나타내는 비트 마스크입니다. 이 속성 값은 다음 중 하나일 수 있습니다.

  • MDACTION_TYPE_URL

  • MDACTION_TYPE_HTML

  • MDACTION_TYPE_STATEMENT

  • MDACTION_TYPE_DATASET

  • MDACTION_TYPE_ROWSET

  • MDACTION_TYPE_COMMANDLINE

  • MDACTION_TYPE_PROPRIETARY

  • MDACTION_TYPE_REPORT

  • MDACTION_TYPE_DRILLTHROUGH

CAPTION

MEMBER_CAPTION과 같습니다.

CHILDREN_CARDINALITY

멤버에 있는 자식 수입니다. 예상치일 수 있으므로 이 값을 정확한 수로 간주하면 안 됩니다. 공급자는 가능한 한 최적의 예상치를 반환해야 합니다.

CUBE_NAME

이 멤버가 속한 큐브 이름입니다.

CUSTOM_ROLLUP

사용자 지정 멤버 식입니다.

CUSTOM_ROLLUP_PROPERTIES

사용자 지정 멤버 속성입니다.

DESCRIPTION

사람이 읽을 수 있는 멤버 설명입니다.

DIMENSION_UNIQUE_NAME

이 멤버가 속한 차원의 고유한 이름입니다. 자격에 따라 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소는 구분 기호로 분리됩니다.

HIERARCHY_UNIQUE_NAME

계층의 고유한 이름입니다. 멤버가 둘 이상의 계층에 속한 경우 멤버가 속한 각 계층마다 하나의 행이 있습니다. 자격에 따라 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소는 구분 기호로 분리됩니다.

IS_DATAMEMBER

멤버가 데이터 멤버인지 여부를 나타내는 부울입니다.

KEYx

멤버에 대한 키이며 x는 키의 서수 값(0부터 시작)입니다. KEY0은 복합 키와 비복합 키에 사용할 수 있고 KEY1, KEY2 등은 복합 키에만 사용할 수 있습니다. Key0, Key1, Key2 등이 전체적으로 복합 키를 구성합니다.

LCIDx

로캘 ID 16진수 값으로 멤버 캡션을 변환한 값이며 x는 로캘 ID 10진수 값(예: 영어-캐나다의 경우 LCID1009)입니다. 데이터 원본에 바인딩된 캡션 열이 변환에 있는 경우에만 이 값을 사용할 수 있습니다.

LEVEL_NUMBER

계층 루트에서 멤버까지의 거리입니다. 루트 수준은 0입니다.

LEVEL_UNIQUE_NAME

이 멤버가 속한 수준의 고유한 이름입니다. 자격에 따라 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소는 구분 기호로 분리됩니다.

MEMBER_CAPTION

멤버에 연결된 레이블 또는 캡션입니다. 캡션은 주로 표시용으로 사용합니다. 캡션이 없는 경우 쿼리는 MEMBER_NAME을 반환합니다.

MEMBER_KEY

원본 데이터 형식에서 멤버 키의 값입니다. MEMBER_KEY는 이전 버전과의 호환성을 위해 제공됩니다.  비복합 키의 경우 MEMBER_KEY 값이 KEY0과 동일하고 복합 키의 경우 MEMBER_KEY 속성이 Null입니다.

MEMBER_NAME

멤버의 이름입니다.

MEMBER_TYPE

멤버의 유형입니다. 이 속성 값은 다음 중 하나일 수 있습니다.

  • MDMEMBER_TYPE_REGULAR

  • MDMEMBER_TYPE_ALL

  • MDMEMBER_TYPE_FORMULA

  • MDMEMBER_TYPE_MEASURE

  • MDMEMBER_TYPE_UNKNOWN

MDMEMBER_TYPE_FORMULA가 MDMEMBER_TYPE_MEASURE보다 우선합니다. 따라서 Measures 차원에 수식(계산) 멤버가 있는 경우 계산 멤버에 대한 MEMBER_TYPE 속성은 MDMEMBER_TYPE_FORMULA입니다.

MEMBER_UNIQUE_NAME

멤버의 고유한 이름입니다. 자격에 따라 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소는 구분 기호로 분리됩니다.

MEMBER_VALUE

원본 형식으로 된 멤버의 값입니다.

PARENT_COUNT

이 멤버에 있는 부모 수입니다.

PARENT_LEVEL

계층 루트 수준에서 멤버 부모까지의 거리입니다. 루트 수준은 0입니다.

PARENT_UNIQUE_NAME

멤버 부모의 고유한 이름입니다. 루트 수준에 있는 임의의 멤버에 대해 NULL을 반환합니다. 자격에 따라 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소는 구분 기호로 분리됩니다.

SKIPPED_LEVELS

멤버의 건너뛴 수준 수입니다.

UNARY_OPERATOR

멤버에 대한 단항 연산자입니다.

상황에 맞지 않는 속성에 대한 PROPERTIES 구문

다음 구문을 사용하여 PROPERTIES 키워드를 사용하는 상황에 맞지 않는 기본 멤버 속성을 지정할 수 있습니다.

DIMENSION PROPERTIES Property

이 구문에서는 차원이나 수준별로 속성을 정규화할 수 없습니다. 상황에 맞지 않는 기본 멤버 속성이 축의 모든 멤버에 적용되므로 속성을 정규화할 수 없습니다.

예를 들어 DESCRIPTION 기본 멤버 속성을 지정하는 MDX 문의 구문은 다음과 같습니다.

DIMENSION PROPERTIES DESCRIPTION

이 문은 축 차원의 각 멤버에 대한 설명을 반환합니다. Dimension.DESCRIPTION 또는 Level.DESCRIPTION에서와 같이 차원이나 수준으로 속성을 정규화하려 한 경우 이 문은 유효성을 검사하지 못했을 것입니다.

다음 예에서는 사용자가 선택한 State-Province 멤버에 대해 Aggregate 함수를 사용하여 계산한 값에 따라 이전 기간에 비해 판매량이 감소한 대리점의 수를 반환합니다. Hierarchize(MDX)DrilldownLevel(MDX) 함수는 Product 차원의 제품 범주에 대해 판매량 감소 값을 반환하는 데 사용됩니다. Properties(MDX) 함수는 열 축에 반환된 부모 멤버의 고유 이름을 반환하는 데 사용됩니다.

WITH MEMBER Measures.[Declining Reseller Sales] AS 
   Count
      (Filter
         (Existing
            (Reseller.Reseller.Reseller)
            , [Measures].[Reseller Sales Amount] < 
            (
               [Measures].[Reseller Sales Amount]
                  ,[Date].Calendar.PrevMember
             )
          )
       )
MEMBER [Geography].[State-Province].x AS 
   Aggregate 
      ( 
         {[Geography].[State-Province].&[WA]&[US]
         , [Geography].[State-Province].&[OR]&[US] 
         } 
      )
SELECT NON EMPTY HIERARCHIZE 
   (AddCalculatedMembers 
      (
         {DrillDownLevel
            ({[Product].[All Products]})
         }
      )
   ) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS 
FROM [Adventure Works]
WHERE 
   (
      [Geography].[State-Province].x
      , [Date].[Calendar].[Calendar Quarter].&[2003]&[4]
      ,[Measures].[Declining Reseller Sales]
   )

다음 예에서는 지정된 로캘에 대한 Adventure Works 큐브의 Product 차원에 있는 제품 카테고리 멤버의 번역된 캡션을 반환합니다.

WITH 
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT 
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]