Filter (MDX)
Devuelve el conjunto resultante de filtrar un determinado conjunto con una condición de búsqueda.
Sintaxis
Filter(Set_Expression, Logical_Expression )
Argumentos
Set_Expression
Expresión MDX válida que devuelve un conjunto.Logical_Expression
Expresión lógica MDX (Expresiones multidimensionales) válida que se evalúa en true o false.
Notas
La función Filter evalúa la expresión lógica especificada con cada tupla del conjunto especificado. La función devuelve un conjunto que consta de cada tupla del conjunto especificado donde la expresión lógica se evalúa en true. Si no se evalúan tuplas en true, se devuelve un conjunto vacío.
La función Filter funciona de manera similar a la función IIf. La función IIf sólo devuelve una de las dos opciones basadas en la evaluación de una expresión lógica MDX, mientras que la función Filter devuelve un conjunto de tuplas que cumplen la condición de búsqueda especificada. En efecto, la función Filter ejecuta IIf(Logical_Expression, Set_Expression.Current, NULL) en cada tupla del conjunto y devuelve el conjunto resultante.
Ejemplos
En el ejemplo siguiente se muestra el uso de la función Filter en el eje de filas de una consulta para devolver únicamente las fechas en las que Internet Sales Amount es mayor que 10000 dólares:
SELECT [Measures].[Internet Sales Amount] ON 0,
FILTER(
[Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]>10000)
ON 1
FROM
[Adventure Works]
La función Filter también puede usarse dentro de definiciones de miembros calculados. El ejemplo siguiente devuelve la suma del miembro Measures.[Order Quantity] agregado en los primeros nueve meses de 2003 incluidos en la dimensión Date del cubo Adventure Works. La función PeriodsToDate define las tuplas del conjunto en que actúa la función Aggregate. La función Filter limita las tuplas devueltas a aquéllas con los valores menores para la medida Reseller Sales Amount para el período de tiempo 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])