SSAS 相对于多个度量和维度的排名



我的报告中有一个排名列。

排名列背后的逻辑基于度量值(计数或总和)并基于三个维度。

例如

我必须显示基于度量值(客户总数)的排名 选定的公司(这将是报告的参数,这反过来又是 一个维度)基于期间(可以是任何年份、半年、 每季度、每月)和产品组

.

甚至测量值也可以从报告中选择为参数,这使事情变得复杂。

我怎样才能做到这一点?

我想我可以将 SSAS 的 RANK 函数与 ORDER 一起用于计算字段。

但是,我们可以创建一个 RANK 函数而不对度量值或维度进行硬编码吗?

我将通过创建一个存储过程来返回报表的数据来处理此问题。

存储过程将使用报表参数生成 MDX 字符串,并使用 OPENQUERY() 在 SSAS 服务器上执行该字符串。 MDX 只需获取报表按列排名的度量值,然后按行对期间和产品组进行排名。

在存储过程中执行 MDX,将结果存储在临时表中,然后使用 ROW_NUMBER() 或 RANK() 函数从临时表中 SELECT 以将 Rank 列添加到输出中。

最新更新