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),然后返回所得到的集。

示例

以下示例说明 Filter 函数在查询的行轴上的用法,以便仅返回 Internet Sales Amount 大于 $10000 的 Date:

SELECT [Measures].[Internet Sales Amount] ON 0,

FILTER(

[Date].[Date].[Date].MEMBERS

, [Measures].[Internet Sales Amount]>10000)

ON 1

FROM

[Adventure Works]

Filter function 函数还可以在计算成员定义内部使用。下面的示例将从 Adventure Works 多维数据集中返回 2003 年前九个月(包含在 Date 维度中)聚合的 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])

请参阅

参考