Filter (MDX)

Filtert eine angegebene Menge basierend auf einer Suchbedingung und gibt dann das Resultset zurück.

Syntax

Filter(Set_Expression, Logical_Expression )

Argumente

  • Set_Expression
    Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Menge zurückgibt.

  • Logical_Expression
    Ein gültiger logischer MDX-Ausdruck (Multidimensional Expressions), dessen Auswertung TRUE oder FALSE ergibt.

Hinweise

Die Filter-Funktion wertet den angegebenen logischen Ausdruck für jedes Tupel in der angegebenen Menge aus. Die Funktion gibt eine Menge zurück, die alle Tupel aus der angegebenen Menge enthält, für die die Auswertung des logischen Ausdrucks true ergeben hat. Wenn die Auswertung für kein Tupel den Wert true ergeben hat, wird eine leere Menge zurückgegeben.

Die Filter-Funktion arbeitet ähnlich wie die IIf-Funktion. Während die IIf-Funktion nur eine von zwei Optionen basierend auf der Auswertung eines logischen MDX-Ausdrucks zurückgibt, gibt die Filter-Funktion eine Menge von Tupeln zurück, die die angegebene Suchbedingung erfüllen. Tatsächlich führt die Filter-Funktion IIf(Logical_Expression, Set_Expression.Current, NULL) für jedes Tupel in der Menge aus und gibt die sich ergebende Menge zurück.

Beispiele

Im folgenden Beispiel wird die Filter-Funktion auf der ROWS-Achse einer Abfrage verwendet, um nur Datumsangaben zurückzugeben, bei denen Internet Sales Amount größer als 10.000 US-Dollar ist:

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

FILTER(

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

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

ON 1

FROM

[Adventure Works]

Die Filter-Funktion kann auch in berechneten Elementdefinitionen verwendet werden. Das folgende Beispiel gibt die Summe des Measures.[Order Quantity]-Elements, aggregiert über die ersten neun Monate von 2003 in der Date-Dimension, aus dem Adventure Works-Cube zurück. Die PeriodsToDate-Funktion definiert die Tupel in der Menge, die die Aggregate-Funktion als Argument nimmt. Die Filter-Funktion beschränkt die zurückgegebenen Tupel auf solche, die geringe Werte für das Reseller Sales Amount-Measure für den vorherigen Zeitraum aufweisen.

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

Siehe auch

Verweis