MDX:如何聚合具有相同名称的层次结构级别成员
您好 我是MDX新手,很难理解如何在层次结构级别上对具有相同名称的成员执行聚合。此查询特定于Microsoft Analysis Services 2000多维数据集 我有一个给定的层次维度,其级别定义如下:MDX:如何聚合具有相同名称的层次结构级别成员,mdx,Mdx,您好 我是MDX新手,很难理解如何在层次结构级别上对具有相同名称的成员执行聚合。此查询特定于Microsoft Analysis Services 2000多维数据集 我有一个给定的层次维度,其级别定义如下: [Segment].[Flow].[Segment Week] 在[Segment Week]级别内,我有以下成员: [Week- 1] [Week- 2] [Week- 3] ... [Week- 1] [Week- 2] [Week- 3] 成员名称相同,但与父级中的不同[F
[Segment].[Flow].[Segment Week]
在[Segment Week]
级别内,我有以下成员:
[Week- 1]
[Week- 2]
[Week- 3]
...
[Week- 1]
[Week- 2]
[Week- 3]
成员名称相同,但与父级中的不同[Flow]
对齐。因此,第一次出现的[Week-1]
成员与[Flow].[A]
对齐,而第二次出现的[Week-1]
与[Flow].[B]
对齐。我试图做的是聚合[分段周]
级别中具有相同名称的所有成员。在SQL术语中,我想在[Segment Week]
级别内按成员名称分组。我不知道怎么做。多谢各位
戴夫我认为你的立方体设计有缺陷 设计维度的最佳方法是使其所有成员都是唯一的,聚合路径遵循维度的自然层次结构 您可以从SEGMENT中删除WEEK级别并创建另一个维度(如果我没记错的话,AS 2000中不能有多个层次结构),例如WEEK,其结构如下:
[Week].[Week- 1]
[Week].[Week- 2]
[Week].[Week- 3]
etc
然后你只需按段和周进行筛选。
例如,要获取流A的所有1周,您需要执行以下操作:
SELECT {[Measures].members} on 0
FROM MYCUBE
WHERE ([Week].[Week- 1],[Segment].[A])
你能用一下会员的钥匙吗
[Week].&[1] ([Week].[Week - 1] (flow1))
[Week].&[5] ([Week].[Week - 1] (flow2))
作为参考,在2008年的“Adventure Works DW Standard Ed”多维数据集中,客户Aaron A.Allen的关键是[Customer].[Customer].&[20075]
更新:
抱歉,请重读您的问题,看起来您并没有试图让特定的一周成为一个流程,您想激怒他们。像这样的案例陈述怎么样:
CASE
WHEN [Week].CURRENTMEMBER.NAME='Week - 1'
THEN [Week].CURRENTMEMBER
ELSE 0
END
不是很通用或灵活,但这可能是一个开始…我同意你的评估,立方体设计有缺陷。不幸的是,对多维数据集的设计更改是不可行的。