Filter (MDX)
検索条件に基づいて指定したセットをフィルター処理した結果のセットを返します。
構文
Filter(Set_Expression, Logical_Expression )
引数
Set_Expression
セットを返す有効な多次元式 (MDX) 式。
Logical_Expression
true または false に評価される有効な多次元式 (MDX) 論理式です。
解説
Filter 関数は、指定したセット内の各タプルに対して、指定された論理式を評価します。 関数は、論理式が true と評価される、指定したセット内の各タプルで構成されるセットを返します。 タプルが true と評価されない場合は、空のセットが返されます。
Filter 関数は、IIf 関数と同様の方法で動作します。 IIf 関数は、MDX 論理式の評価に基づいて 2 つのオプションのうちの 1 つだけを返しますが、Filter 関数は、指定された検索条件を満たすタプルのセットを返します。 実際には、 Filter 関数はセット内の各タプルに対して実行 IIf(Logical_Expression, Set_Expression.Current, NULL)
され、結果のセットを返します。
例
次の例では、クエリの行軸に Filter 関数を使用して、Internet Sales Amount が $10000 より大きい日付のみを返す方法を示します。
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 キューブから、ディメンションにMeasures.[Order Quantity]
含まれる 2003 年の最初の 9 か月間にDate
集計されたメンバーの合計を返します。 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])