按一个MDX维度筛选,但显示另一个

时间:2011-11-10 13:26:50

标签: 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]

它给了我正确的结果集,但现在通过Index&gt;进行聚合。 Imnt Ctry,我只想要索引。

此外,我已尝试声明一个集合并使用一个交集,但交集必须声明与其他不解析的集合相同的维度,因此不再使用。

这似乎是一个想要执行的逻辑操作,但我无法得到它。

1 个答案:

答案 0 :(得分: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]})