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

时间:2015-05-08 23:50:45

标签: sql ssas mdx olap-cube sql-server-2012-datatools

期望的结果

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

立方体结果显示了特定员工的所有经理,如下所示:

  

Abbas,Sanchez,825
  阿巴斯,韦尔克,825
  阿巴斯,阿巴斯,825`

我希望看到只是特定员工的直接经理,这意味着:

  

Abbas,Welcker,825

如何复制场景:

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

      修改
    • EmployeeKey 属性以获取名称列:DimEmployee.LastName
    • ParentEmployeeKey 属性属于父子关系。该属性已创建多层次的层次结构。SCREENSHOT 1
  7. 部署多维数据集并浏览。拖动以下属性: LastName,ParentEmployeeKey,订单数​​量。 SCREENSHOT 2

1 个答案:

答案 0 :(得分:0)

也许你可以试试这些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]