Mdx 是否可以在层次维度中折叠不同分支的多个类似节点?
假设我使用以下层次结构作为维度:Mdx 是否可以在层次维度中折叠不同分支的多个类似节点?,mdx,hierarchy,dimension,Mdx,Hierarchy,Dimension,假设我使用以下层次结构作为维度: 根 A1 B11 B12 B1N B1Special A2 B21 B22 B2N B2Special 上午 BM1 BM2 BMN BMSpecial 在每个“B”节点下,还有多个不同级别的节点。层次结构的每个叶都有一个相关的度量(某些事实F的总和)。 使用MDX是否可以在根级别仅查看一次所有“特殊”节点的和,并且仅查看“特殊”节点的子项。换句话说,您只希望在结果集中看到一个数字 假设您原始问题中详细描述的层次结构称为“Bob”,您
- 根
- A1
- B11
- B12
- B1N
- B1Special
- A2
- B21
- B22
- B2N
- B2Special
- 上午
- BM1
- BM2
- BMN
- BMSpecial
使用MDX是否可以在根级别仅查看一次所有“特殊”节点的和,并且仅查看“特殊”节点的子项。换句话说,您只希望在结果集中看到一个数字 假设您原始问题中详细描述的层次结构称为“Bob”,您还有另一个维度称为“Kate”,您可以试试这个
WITH MEMBER [Bob].[Only the special levels]
AS 'Aggregate(
Filter(
{[Bob].[Name of level which holds B members].members},
InStr(1, [Bob].CurrentMember.Name, "Special") > 0
)
)'
SELECT {[Kate].defaultMember} ON ROWS,
{[Measures].[Whever you want to see aggregated]} ON COLUMNS
FROM [Cube name]
WHERE ([Bob].[Only the special levels])
这将在Bob维度中创建一个新的临时成员,它是Bob维度中其他几个成员的聚合。我们从坐在一个特定级别的所有成员开始。过滤器
仅选择名称中有“特殊”一词的成员
请注意,InStr
是Microsoft SSAS支持的VBA函数。如果未找到所选字符串,则返回零。MDX的其他版本中可能提供其他字符串搜索功能
然后在
WHERE
子句中使用这个新成员,并在任何地方使用其他维度/度量值。答案可能是肯定的。但我不理解您的要求:您不希望在上面的哪个节点上看到子节点的总和?您希望在那里看到什么值?“所有且仅“特殊”节点的子项的总和”是所有叶节点加上特殊节点的总和,即。E特殊节点在总和中包含两次?假设每个特殊节点只包含属于层次结构叶的子节点。我只需要这些树叶的全部事实。如果我只看到根,我想看到一个数字,它是所有特殊节点的直接子节点的所有事实的总和。若我展开第一级,我想看到每个A节点的事实总和,等等。哎呀,我在你们写评论的时候写了我的答案!