【问题标题】:(SQL Server Analysis Services) MDX query to get immediate parent?(SQL Server 分析服务)MDX 查询以获得直接父级?
【发布时间】:2015-05-08 23:50:44
【问题描述】:

想要的结果

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

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

阿巴斯,桑切斯,825
阿巴斯,韦尔克,825
阿巴斯,阿巴斯,825`

我想只查看特定员工的直属经理,意思是:

阿巴斯,韦尔克,825

如何复制场景:

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

    • EmployeeKey 属性被修改为取 Name Column: DimEmployee.LastName
    • ParentEmployeeKey 属性是父子关系。该属性已创建多级层次结构。SCREENSHOT 1
  7. 部署多维数据集并浏览。拖动以下属性:LastName、ParentEmployeeKey、Order Quantity。 SCREENSHOT 2

【问题讨论】:

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


【解决方案1】:

也许您可以尝试以下任一 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]

【讨论】:

  • 非常感谢。我不得不切换行和列(ON 1,然后 ON 0)但它可以工作。
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多