Filter (MDX)
Retorna o conjunto resultante da filtragem de um conjunto especificado com base em um critério de pesquisa.
Sintaxe
Filter(Set_Expression, Logical_Expression )
Argumentos
Set_Expression
Uma linguagem MDX válida que retorna um conjunto.Logical_Expression
Uma expressão lógica MDX válida avaliada como verdadeira ou falsa.
Comentários
A função Filter avalia a expressão lógica especificada em relação a cada tupla no conjunto especificado. A função retorna um conjunto composto por cada tupla no conjunto especificado, no qual a expressão lógica é avaliada como true. Se nenhuma tupla for avaliada como true, um conjunto vazio será retornado.
A função Filter funciona de modo semelhante ao da função IIf. A função IIf retorna apenas uma das duas opções com base na avaliação de uma expressão lógica MDX, enquanto a função Filter retorna um conjunto de tuplas que atendem ao critério de pesquisa especificado. De fato, a função Filter executa IIf(Logical_Expression, Set_Expression.Current, NULL) em cada tupla no conjunto e retorna o conjunto resultante.
Exemplos
O exemplo a seguir mostra o uso da função Filter no eixo Linhas de uma consulta para retornar somente as Datas em que o Valor das Vendas pela Internet é maior do que US$ 10.000:
SELECT [Measures].[Internet Sales Amount] ON 0,
FILTER(
[Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]>10000)
ON 1
FROM
[Adventure Works]
A função Filter também pode ser usada em definições de membro calculado. O exemplo a seguir retorna a soma do membro Measures.[Order Quantity], agregado sobre os primeiros nove meses do ano calendário 2003 contidos na dimensão Date, a partir do cubo Adventure Works. A função PeriodsToDate define as tuplas no conjunto sobre o qual a função Aggregate opera. A função Filter impede que essas tuplas sejam retornadas para aquelas com valores mais baixos para a medida Valor das Vendas do Revendedor do período de tempo anterior.
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])