我正在尝试编写一个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,我只想要索引。
此外,我已尝试声明一个集合并使用一个交集,但交集必须声明与其他不解析的集合相同的维度,因此不再使用。
这似乎是一个想要执行的逻辑操作,但我无法得到它。
答案 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]})