滤波器(MDX)

返回根据搜索条件筛选指定集合后生成的集合。

Syntax

  
Filter(Set_Expression, Logical_Expression )  

Arguments

Set_Expression
一个有效的多维表达式(MDX)表达式,返回集合。

Logical_Expression
一个有效的多维表达式(MDX)逻辑表达式,能为真或假。

Remarks

滤波函数会针对指定集合中的每个元组评估指定的逻辑表达式。 该函数返回一个集合,该集合包含指定集合中逻辑表达式值为 的所有元组。 如果没有元组被取 为真,则返回一个空集合。

滤波器函数的工作方式类似于IIf函数。 IIf 函数仅返回基于 MDX 逻辑表达式的两个选项之一,而 Filter 函数返回满足指定搜索条件的元组集合。 实际上, 滤波函数IIf(Logical_Expression, Set_Expression.Current, NULL) 集合中的每个元组执行,并返回所得集合。

示例

以下示例展示了查询行轴上的筛选功能,仅返回互联网销售金额大于10000美元的日期:

SELECT [Measures].[Internet Sales Amount] ON 0,  
FILTER(  
[Date].[Date].[Date].MEMBERS  
,  [Measures].[Internet Sales Amount]>10000)  
ON 1  
FROM  
[Adventure Works]  

过滤器函数也可以使用内部计算的成员定义。 以下示例返回了2003Date年前九个月内该维度成员的总和Measures.[Order Quantity],该成员来自Adventure Works立方体。 PeriodsToDate函数定义了聚合函数所作用的集合中的元组。 过滤功能限制返回的元组为上一时期经销商销售金额度量中值较低的元组。

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