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.
Bemerkungen
Die Filter-Funktion wertet den angegebenen logischen Ausdruck für jedes Tupel im angegebenen Satz aus. Die Funktion gibt einen Satz zurück, der aus jedem Tupel in der angegebenen Menge besteht, in der der logische Ausdruck zu true ausgewertet wird. Wenn keine Tupel als true ausgewertet werden, wird eine leere Menge zurückgegeben.
Die Filter-Funktion funktioniert auf ähnliche Weise wie die IIf-Funktion . Die IIf-Funktion gibt basierend auf der Auswertung eines logischen MDX-Ausdrucks nur eine von zwei Optionen zurück, während die Filterfunktion einen Satz von Tupeln zurückgibt, die die angegebene Suchbedingung erfüllen. Tatsächlich wird die Filter-Funktion für jedes Tupel im Satz ausgeführt IIf(Logical_Expression, Set_Expression.Current, NULL)
und gibt den resultierenden Satz 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. Im folgenden Beispiel wird die Summe des Members aus dem Measures.[Order Quantity]
Adventure Works-Cube zurückgegeben, der in den ersten neun Monaten des Jahres 2003 in der Date
Dimension enthalten ist. Die PeriodsToDate-Funktion definiert die Tupel in der Menge, über die die Aggregate-Funktion ausgeführt wird. Die Filter-Funktion schränkt die Rückgabe von Tupeln auf diejenigen mit niedrigeren Werten für das Reseller Sales Amount-Measure für den vorherigen Zeitraum ein.
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])