(SQL Server Analysis Services) MDX 查询以获得直接父级?

(SQL Server Analysis Services) MDX query to get immediate parent?

想要的结果

当部署和浏览多维数据集时,我希望只看到员工的直属经理。

多维数据集结果显示特定员工的所有经理,如下所示:

Abbas, Sanchez, 825
Abbas, Welcker, 825
Abbas, Abbas, 825`

我只想见某个特定员工的直属经理,意思是:

Abbas, Welcker, 825

如何复制场景:

  1. 使用SQL服务器数据工具
  2. 创建一个 Analysis Services 多维数据挖掘项目
  3. 数据源是AdventureWorksDW12数据库,微软的示例数据库。
  4. 数据源视图有两个表:FactResellerSalesDimEmployee
  5. 创建一个多维数据集。 FactResellerSales = 措施。 DimEmployee = 维度。
  6. DimEmployee 维度具有以下属性:EmployeeKey、LastName、ParentEmployeeKey.

    • EmployeeKey 属性修改为采用名称列:DimEmployee.LastName
    • ParentEmployeeKey 属性处于父子关系中。该属性创建了多级层次SCREENSHOT 1
  7. 部署多维数据集并浏览。拖动以下属性:LastName、ParentEmployeeKey、Order Quantity。SCREENSHOT 2

或许您可以尝试以下任一 mdx 功能:

.Parent ... https://msdn.microsoft.com/en-us/library/ms145513.aspx

ancestor ... https://msdn.microsoft.com/en-us/library/ms145616.aspx

您试图在其中获取父项的查询的上下文很重要。我的意思是取决于您对行和列或切片器的其他要求会影响您使用 mdx 查找父项的方式。

类似下面的方法可能有效:

WITH MEMBER Measures.ParentKey AS 
   [Dim Employee].[Parent Employee Key].CurrentMember.Parent.member_caption
SELECT 
  {[Measures].ParentKey } ON 0,
  [Dim Employee].[Parent Employee Key].[(All)].members ON 1
FROM [YourCube]