2011-11-10 68 views
0

我想寫一個MDX查詢,限制我的多維數據集的一維返回的結果,但顯示從另一個聚合,沒有人知道這是可能的嗎?篩選一個MDX維度,但顯示另一個

我有效要執行的是:

SELECT 
NON EMPTY 
Filter([Index].[Index].Members, [Imnt Ctry].[ImntCtry].CurrentMember.Name<>"GB") 
ON ROWS, 
NON EMPTY {[Measures].[T.SUM], [Measures].[B.SUM], [Measures].[L.SUM], [Measures].[SBL.SUM], [Measures].[P.SUM], [Measures].[R.SUM], [Measures].[Coll.SUM], [Measures].[Long.SUM], [Measures].[Short.SUM], [Measures].[Firm.SUM], [Measures].[Net.SUM], [Measures].[PTH.SUM]} ON COLUMNS 
FROM [PositionsCube] 

此執行,但沒有返回,我可以選擇如下方式:

SELECT 
NON EMPTY 
Crossjoin([Index].[Index].Members, Filter([Imnt Ctry].[ImntCtry].Members, [Imnt Ctry].[ImntCtry].CurrentMember.Name<>"GB")) 
ON ROWS, 
NON EMPTY {[Measures].[T.SUM], [Measures].[B.SUM], [Measures].[L.SUM], [Measures].[SBL.SUM], [Measures].[P.SUM], [Measures].[R.SUM], [Measures].[Coll.SUM], [Measures].[Long.SUM], [Measures].[Short.SUM], [Measures].[Firm.SUM], [Measures].[Net.SUM], [Measures].[PTH.SUM]} ON COLUMNS 
FROM [PositionsCube] 

這給了我正確的結果集,但現在通過彙總索引> Imnt Ctry,我只是想索引。

此外,我已經嘗試聲明一個集合並使用交集,但交集必須聲明相同的維度,否則不會解析所以不再使用。

看來這將是一個合乎邏輯的操作來執行,但我無法得到它。

回答

1

使用切片部分。

WITH 
Set [FilterImnt] As (Filter([Imnt Ctry].[ImntCtry].Members, [Imnt Ctry].[ImntCtry].CurrentMember.Name<>"GB")) 
SELECT 
NON EMPTY 
{[Index].[Index].Members} 
ON ROWS, 
NON EMPTY {[Measures].[T.SUM], [Measures].[B.SUM], [Measures].[L.SUM], [Measures].[SBL.SUM], [Measures].[P.SUM], [Measures].[R.SUM], [Measures].[Coll.SUM], [Measures].[Long.SUM], [Measures].[Short.SUM], [Measures].[Firm.SUM], [Measures].[Net.SUM], [Measures].[PTH.SUM]} ON COLUMNS 
FROM [PositionsCube] 
Where ({[FilterImnt]})