Filter (многомерные выражения)

Возвращает набор, получающийся в результате фильтрации заданного набора на основе условия поиска.

Синтаксис

  
Filter(Set_Expression, Logical_Expression )  

Аргументы

Set_Expression
Допустимое многомерное выражение, возвращающее набор.

Logical_Expression
Допустимое многомерное выражение иерархии, принимающее значение «true» или «false».

Замечания

Функция фильтра вычисляет указанное логическое выражение для каждого кортежа в указанном наборе. Функция возвращает набор, состоящий из каждого кортежа в указанном наборе, где логическое выражение оценивается как true. Если кортежи не оцениваются как true, возвращается пустой набор.

Функция фильтра работает так же, как и функция IIf . Функция IIf возвращает только один из двух вариантов на основе оценки логического выражения многомерных выражений, а функция фильтра возвращает набор кортежей, удовлетворяющих указанному условию поиска. В действительности функция фильтра выполняется IIf(Logical_Expression, Set_Expression.Current, NULL) для каждого кортежа в наборе и возвращает результирующий набор.

Примеры

В следующем примере показано использование функции Filter на оси строк запроса, чтобы получить только даты, когда мера «Продажи через Интернет — сумма продаж» больше 10 000 долларов США:

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

FILTER(

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

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

ON 1

FROM

[Adventure Works]

Функция Filter может также использоваться в определениях вычисляемых элементов. В следующем примере возвращается сумма Measures.[Order Quantity] элемента, агрегированная за первые девять месяцев 2003 года, содержащихся в Date измерении, из куба 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])  

См. также

Справочник по функции многомерных выражений (многомерные выражения)