Filter(MDX)
검색 조건을 기준으로 지정한 집합을 필터링한 결과 집합을 반환합니다.
구문
Filter(Set_Expression, Logical_Expression )
인수
Set_Expression
집합을 반환하는 유효한 MDX 식입니다.Logical_Expression
true나 false가 되는 유효한 MDX 논리 식입니다.
주의
Filter 함수는 지정된 집합의 각 튜플에 대해 지정된 논리 식을 계산합니다. 이 함수는 지정된 집합에서 논리 식이 true가 되는 각 튜플로 구성된 집합을 반환합니다. true가 되는 튜플이 없으면 빈 집합이 반환됩니다.
Filter 함수는 IIf 함수와 비슷한 방식으로 실행됩니다. IIf 함수는 MDX 논리 식에 대한 평가를 기반으로 두 가지 옵션 중 하나만 반환하는 반면, Filter 함수는 지정된 검색 조건에 맞는 튜플 집합을 반환합니다. 실제로 Filter 함수는 집합의 각 튜플에 대해 IIf(Logical_Expression, Set_Expression.Current, NULL)을 실행하고 해당 결과 집합을 반환합니다.
예
다음 예에서는 Internet Sales Amount가 $10000보다 큰 Dates만 반환하기 위해 쿼리의 Rows 축에서 Filter 함수를 사용하는 방법을 보여 줍니다.
SELECT [Measures].[Internet Sales Amount] ON 0,
FILTER(
[Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]>10000)
ON 1
FROM
[Adventure Works]
또한 Filter 함수를 계산 멤버 정의 내에서 사용할 수 있습니다. 다음 예에서는 Adventure Works 큐브로부터 Date 차원에 포함된 2003년의 첫 9개월 동안 집계된 Measures.[Order Quantity] 멤버의 합계를 반환합니다. PeriodsToDate 함수는 Aggregate 함수가 실행되는 집합의 튜플을 정의합니다. Filter 함수는 반환되는 튜플을 이전 기간의 Reseller Sales Amount 측정값에 대해 낮은 값을 갖는 튜플로 제한합니다.
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])