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 expressão MDX (Multidimensional Expressions) 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])

Consulte também

Referência