Ssas MDX获取层次结构值

Ssas MDX获取层次结构值,ssas,mdx,relationship,hierarchy,dimension,Ssas,Mdx,Relationship,Hierarchy,Dimension,我找了又找,找不到答案,因为看起来应该很简单 我有一个维度中的员工层次结构。员工有分数(在事实表中)。当我将层次结构拖到行上时,我可以很容易地看到正确求和的点。问题在于,根据职务代码对员工进行不同的判断,而职务代码并不一定对应于层次结构中的级别 例如,我有一个项目工程师。他们是根据个人观点来评判的。我可以将名称拉到行上,按作业代码过滤,并将点放入度量值中,这样我就得到了用户希望看到的内容 项目工程师IIs则是另一回事。他们是根据团队得分来评判的。我将名称拉到行上,按作业代码过滤,我需要一个计算的

我找了又找,找不到答案,因为看起来应该很简单

我有一个维度中的员工层次结构。员工有分数(在事实表中)。当我将层次结构拖到行上时,我可以很容易地看到正确求和的点。问题在于,根据职务代码对员工进行不同的判断,而职务代码并不一定对应于层次结构中的级别

例如,我有一个项目工程师。他们是根据个人观点来评判的。我可以将名称拉到行上,按作业代码过滤,并将点放入度量值中,这样我就得到了用户希望看到的内容

项目工程师IIs则是另一回事。他们是根据团队得分来评判的。我将名称拉到行上,按作业代码过滤,我需要一个计算的度量来汇总属于它们的所有点,就像我将层次结构拖到行上一样。问题是我似乎无法将姓名或EmployeeID与层次结构联系起来,以获得团队价值。事实上,我甚至无法获取Employee ID主键,因为它隐藏在父子层次结构下。我得去拿一份

我怎样才能达到这个要求?我已经尝试过许多不同的MDX(我不是专家的语言),但关键的问题似乎是我无法根据行值获得层次结构成员。这就好像它们完全不相关,而事实上,我知道我的密钥副本只与层次结构中的一个特定成员相关。出于这个原因,我还认为可能需要更改的不是MDX,而是维度属性/关系/属性

请帮忙!如果有任何关于立方体或需求的问题我可以回答,请告诉我


更新:我使用桥接表和多对多关系设置了维度,如第70页的以下链接所述。我没有提到这件事,因为我认为这件事与此无关,这让问题变得复杂起来。我这样设置是因为有正式和非正式的等级制度。从概念上讲,我看不出这有什么关系,因为父子关系正是您所期望的-有一个对应于键值的父字段。

我能够解决这个问题

我使用下面的MDX创建了一个命名集,基本上为我提供了以前无法获得的内容—父子层次结构的实际叶成员,而不是其副本

DESCENDANTS([Vw Dim Employee Hierarchies].[PIDH Name].&[37Informal]
                , [Vw Dim Employee Hierarchies].[PIDH Name].Levels.Count - 1
                , LEAVES)
成员37NORMABLE是非正式层次结构的根,我指定了底部级别,LEVES选项返回根成员和指定级别之间层次结构的所有叶级成员

然后,通过将命名集中每个成员的值与其在层次结构上的父级进行比较,我可以创建所需的“TeamPoints”计算成员。如果是同一个名字,那么我总结了他的观点和他所有兄弟姐妹的观点。如果没有,我只是回答了他的观点。代码如下:

CASE WHEN [Vw Dim Employee Hierarchies].[PIDH Name].CurrentMember.Parent.Name =
                [Vw Dim Employee Hierarchies].[PIDH Name].CurrentMember.Name
    THEN SUM(
            {[Vw Dim Employee Hierarchies].[PIDH Name].CurrentMember.Siblings
                    * UNION({[Vw Dim Employee Hierarchies].[Job Code].&[ENGOPROF]}
                            , {[Vw Dim Employee Hierarchies].[Job Code].&[PROJENG]}
                            , {[Vw Dim Employee Hierarchies].[Job Code].&[INTRNENG]})}
            , [Measures].[Points])
    ELSE [Measures].[Points]
    END

关键实际上是命名集。如果没有它,我就无法从我的行层次结构中获取所有叶节点,这是我的计算成员在当前成员上下文中正确计算所需的。

如何设置维度表?您是如何设置层次结构的?你这是什么意思?:“我甚至无法获取员工ID主键,因为它隐藏在父子层次结构下”我的意思是,该键字段不显示在多维数据集浏览器中。所有其他字段都有,但我看到的不是键字段,而是带有父字段名称标签的层次结构。就我所见,没有办法将键字段放在行上,即使属性层次结构启用属性设置为true。所以我在第二栏复制了一份,强迫它出现。但是它没有链接到层次结构。如果创建属性并为其分配密钥字段,则应该能够通过将该属性放到行上,将其分配到多维数据集浏览器中的行。这就是你想要的吗?我不确定你的确切意思,但我能解决我的问题。谢谢你的帮助!