SSAS MDX查询,按销售人员筛选行

SSAS MDX查询,按销售人员筛选行,ssas,mdx,Ssas,Mdx,我正在学习如何使用MDX SQL Server 2012查询查询多维数据集。我遇到了一个挑战。我们有一个销售人员的层次结构,一个存储过程返回一个表,其中所有销售人员都在经理的领导下工作。我有一个经典的销售多维数据集,其中FactSales PK是发票编号和发票行以及所有销售人员的维度 如何筛选销售人员所在表中的发票 类似于此,但已转换为MDX: 选择*从销售中,其中销售人员在从销售人员中选择销售人员 我认为这唯一可行的方法是动态编写查询并将每个销售人员添加到过滤器中,但我认为这不是最佳选择,我们

我正在学习如何使用MDX SQL Server 2012查询查询多维数据集。我遇到了一个挑战。我们有一个销售人员的层次结构,一个存储过程返回一个表,其中所有销售人员都在经理的领导下工作。我有一个经典的销售多维数据集,其中FactSales PK是发票编号和发票行以及所有销售人员的维度

如何筛选销售人员所在表中的发票

类似于此,但已转换为MDX:

选择*从销售中,其中销售人员在从销售人员中选择销售人员

我认为这唯一可行的方法是动态编写查询并将每个销售人员添加到过滤器中,但我认为这不是最佳选择,我们可以有200或400人返回销售


谢谢

如果包含销售人员的维度包含为谁工作的层次结构,则无需使用存储过程即可解决该问题。假设您的经理名为John Doe,您的销售人员层次结构名为[sales person].[sales person]。那就用

[Sales Person].[Sales Person].[John Doe].Children
在您的查询中,如果您想查看直接为John工作的人员的销售情况,那么您就完成了。如果您希望看到John本人和所有直接或间接为他工作的人,您可以使用以下“后代”函数:

Descendants([Sales Person].[Sales Person].[John Doe], 0, SELF_AND_AFTER)
此函数有许多变体,有文档记录

在Microsoft Adventure Works示例多维数据集中,类似的层次结构称为[Employee].[Employees],您可以运行以下查询:

SELECT {
       [Measures].[Reseller Sales Amount]
       }
       *
       [Date].[Calendar].[Calendar Year].Members
       ON COLUMNS,
       Descendants([Employee].[Employees].[Jean E. Trenary], 0, SELF_AND_AFTER)
       ON ROWS
FROM [Adventure Works]

查看直接或间接为Jean E.Trenary工作的员工的销售情况。

如何识别这200-400名销售人员?他们是否都向某个特定的人或在同一部门工作或做其他事情汇报。或者仅仅是你的个人名单?另外,您可以修改多维数据集,还是必须在查询中修改多维数据集?它来自一个存储过程,该过程查询一个表,我们在该表中存储人员的层次结构,我们只需传递希望查看数据的用户,然后它返回为他工作的销售人员,非常重要的是,我们要找到一种方法来对多维数据集进行安全修剪,以便进行报告