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])
См. также
Справочник по функции многомерных выражений (многомерные выражения)