Condividi tramite


Filter (MDX)

Restituisce il set risultante dal filtro di un set specificato in base a una condizione di ricerca.

Sintassi

Filter(Set_Expression, Logical_Expression )

Argomenti

  • Set_Expression
    Espressione MDX (Multidimensional Expression) valida che restituisce un set.

  • Logical_Expression
    Espressione logica MDX (Multidimensional Expression) valida che restituisce true o false.

Osservazioni

La funzione Filter valuta l'espressione logica specificata rispetto a ogni tupla del set specificato. La funzione restituisce un set costituito da ogni tupla del set specificato in cui l'espressione logica restituisce true. Se nessuna tupla restituisce true, viene restituito un set vuoto.

Il funzionamento della funzione Filter è simile a quello della funzione IIf. La funzione IIf restituisce solo una di due opzioni in base alla valutazione di un'espressione logica MDX, mentre la funzione Filter restituisce un set di tuple che soddisfano la condizione di ricerca specificata. La funzione Filter esegue di fatto IIf(Logical_Expression, Set_Expression.Current, NULL) su ogni tupla del set e restituisce il set risultante.

Esempi

Nell'esempio seguente viene illustrato l'utilizzo della funzione Filter sull'asse Rows di una query, per restituire solo le date in cui Internet Sales Amount è maggiore di $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 funzione Filter può essere utilizzata anche nelle definizioni di membri calcolati. Nell'esempio seguente viene restituita la somma del membro Measures.[Order Quantity], aggregato sui primi nove mesi del 2003 contenuti nella dimensione Date del cubo Adventure Works. La funzione PeriodsToDate definisce le tuple del set su cui viene eseguita la funzione Aggregate. La funzione Filter limita le tuple che devono essere restituite alle tuple con valori inferiori per la misura Reseller Sales Amount per il periodo di tempo precedente.

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