Filter (MDX)

Retourne le jeu résultant du filtrage d'un jeu spécifié selon une condition de recherche.

Syntaxe

Filter(Set_Expression, Logical_Expression )

Arguments

  • Set_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un jeu.

  • Logical_Expression
    Expression logique MDX (Multidimensional Expressions) valide qui prend la valeur True ou False.

Notes

La fonction Filter évalue l'expression logique spécifiée par rapport à chaque tuple dans le jeu spécifié. Elle retourne un jeu composé de chaque tuple dans le jeu spécifié où l'expression logique prend la valeur true. Si aucun tuple ne prend la valeur true, un jeu vide est retourné.

Le fonctionnement de la fonction Filter est assez semblable à celui de la fonction IIf. La fonction IIf retourne uniquement l'une des deux options en fonction de l'évaluation d'une expression logique MDX, tandis que la fonction Filter retourne un jeu de tuples qui satisfait la condition de recherche spécifiée. En fait, la fonction Filter exécute IIf(Logical_Expression, Set_Expression.Current, NULL) sur chaque tuple du jeu et retourne le jeu obtenu.

Exemples

L'exemple suivant illustre l'utilisation de la fonction Filter sur l'axe des lignes d'une requête afin de retourner uniquement les dates où le Montant des ventes sur Internet est supérieur à $10 000 :

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

FILTER(

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

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

ON 1

FROM

[Adventure Works]

La fonction Filter peut également s'utiliser à l'intérieur des définitions de membre calculées. L'exemple ci-dessous retourne la somme du membre Measures.[Order Quantity], agrégé sur les neuf premiers mois de 2003 contenus dans la dimension Date, dans le cube Adventure Works. La fonction PeriodsToDate définit les tuples dans le jeu sur lequel la fonction Aggregate opère. La fonction Filter limite les tuples retournés à ceux dont les valeurs dans la mesure Reseller Sales Amount pour la période précédente sont plus faibles.

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