Filter (MDX)
傳回根據搜尋條件篩選指定集合後所得的集合。
語法
Filter(Set_Expression, Logical_Expression )
引數
Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。Logical_Expression
評估為 true 或 false 的有效多維度運算式 (MDX) 邏輯運算式。
備註
Filter 函數會對指定集合中的每個 Tuple 評估指定的邏輯運算式。函數會傳回集合,該集合由指定集合中邏輯運算式評估為 true 的每個 Tuple 組成。如果沒有 Tuple 評估為 true,則會傳回空集合。
Filter 函數的工作方式類似於 IIf 函數。IIf 函數只依據 MDX 邏輯運算式的評估傳回兩個選項的其中一個,而 Filter 函數會傳回符合指定搜尋條件的 Tuple 集合。Filter 函數會在集合內每個 Tuple 上執行 IIf(Logical_Expression, Set_Expression.Current, NULL),然後傳回結果集。
範例
下列範例示範如何在查詢的資料列軸上使用 Filter 函數,以便只傳回 Internet Sales Amount 大於 $10000 的日期:
SELECT [Measures].[Internet Sales Amount] ON 0,
FILTER(
[Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]>10000)
ON 1
FROM
[Adventure Works]
Filter 函數也可以在導出成員定義內使用。下列範例會從 Adventure Works Cube 傳回 Measures.[Order Quantity] 成員的總和,彙總 Date 維度中含括之 2003 年的前 9 個月。PeriodsToDate 函數會定義 Aggregate 函數作用所在集合的 Tuple。Filter 函數會將所傳回的 Tuple 限制於上一個時間週期 Reseller Sales Amount 量值減少的那些 Tuple。
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])