쿼리 범위 계산 멤버 만들기(MDX)
단일 MDX 쿼리에만 계산 멤버가 필요한 경우 WITH 키워드를 사용하여 해당 계산 멤버를 정의할 수 있습니다. WITH 키워드를 사용하여 만든 계산 멤버는 쿼리 실행이 종료된 다음에는 더 이상 존재하지 않습니다.
이 항목의 설명에서와 같이 WITH 키워드의 구문은 매우 유연하기 때문에 다른 계산 멤버를 기반으로 계산 멤버를 만들 수도 있습니다.
[!참고]
계산 멤버에 대한 자세한 내용은 계산 멤버를 MDX로 작성(MDX)을 참조하십시오.
WITH 키워드 구문
WITH 키워드를 MDX SELECT 문에 추가하려면 기본 구문을 사용합니다.
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ] SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ]FROM <SELECT subcube clause> [ <SELECT slicer axis clause> ][ <SELECT cell property list clause> ]
<SELECT WITH clause> ::=
( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>) | <CREATE MEMBER body clause> ::= Member_Identifier AS 'MDX_Expression'
[ <CREATE MEMBER property clause> [ , <CREATE MEMBER property clause> ... ] ]
<CREATE MEMBER property clause> ::=
( MemberProperty_Identifier = Scalar_Expression )
WITH 키워드 구문에서 Member_Identifier 값은 계산 멤버의 정규화된 이름입니다. 이 정규화된 이름에는 계산 멤버가 연결된 차원 또는 수준이 포함됩니다. MDX_Expression 값은 식 값이 계산된 후의 계산 멤버의 값을 반환합니다. MemberProperty_Identifier 값의 셀 속성 이름과 Scalar_Expression 값의 셀 속성 값을 제공하여 계산 멤버에 대한 기본 셀 속성 값을 지정할 수도 있습니다.
WITH 키워드 예
다음 MDX 쿼리는 [Measures].[Special Discount] 계산 멤버를 정의하여 원래 할인 가격을 기준으로 특별 할인 가격을 계산합니다.
WITH
MEMBER [Measures].[Special Discount] AS
[Measures].[Discount Amount] * 1.5
SELECT
[Measures].[Special Discount] on COLUMNS,
NON EMPTY [Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
WHERE [Product].[Category].[Bikes]
계산 멤버는 계층 구조 안의 어느 지점에나 만들 수 있습니다. 예를 들어 아래 MDX 쿼리에서는 가상의 Sales 큐브에 대해 [BigSeller] 계산 멤버를 정의합니다. 이 계산 멤버는 지정된 상점의 맥주 및 포도주에 대한 단위 판매가 적어도 100.00 이상인지 여부를 확인합니다. 하지만 쿼리는 [BigSeller] 계산 멤버를 [Product] 차원의 자식 멤버로 만들지 않으며, 그 대신 [Beer and Wine] 멤버의 자식 멤버로 만듭니다.
WITH
MEMBER [Product].[Beer and Wine].[BigSeller] AS
IIf([Product].[Beer and Wine] > 100, "Yes","No")
SELECT
{[Product].[BigSeller]} ON COLUMNS,
Store.[Store Name].Members ON ROWS
FROM Sales
계산 멤버는 큐브의 기존 멤버에 종속될 필요가 없습니다. 계산 멤버는 또한 동일 MDX 식에서 정의된 다른 계산 멤버에 기반할 수 있습니다. 예를 들어 다음 MDX 쿼리는 첫 번째 계산 멤버인 [Measures].[Special Discount]에서 만든 값을 사용하여 두 번째 계산 멤버인 [Measures].[Special Discounted Amount]의 값을 생성합니다.
WITH
MEMBER [Measures].[Special Discount] AS
[Measures].[Discount Percentage] * 1.5,
FORMAT_STRING = 'Percent'
MEMBER [Measures].[Special Discounted Amount] AS
[Measures].[Reseller Average Unit Price] * [Measures].[Special Discount],
FORMAT_STRING = 'Currency'
SELECT
{[Measures].[Special Discount], [Measures].[Special Discounted Amount]} on COLUMNS,
NON EMPTY [Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
WHERE [Product].[Category].[Bikes]