Share via


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])  

参照

MDX 関数リファレンス (MDX)