我的报告中有一个Rank列。
秩列背后的逻辑基于一个Measure值(一个count或sum)并基于三维。
例如,
我要根据a的Measure值(总客户)显示排名 选定的公司(这将是报告的参数,反过来 基于期间的维度(可以是任何年份,半年, 每季度,每月)和产品组
甚至可以从报告中选择度量值作为参数,这会使事情变得复杂。
我该如何做到这一点?
我认为我可以将SSAS的RANK函数与ORDER一起用于计算字段。
但是我们可以创建一个RANK函数而无需对度量或维度进行硬编码吗?
答案 0 :(得分:0)
我会通过创建存储过程来返回报告的数据来处理这个问题。
存储过程将使用报告参数构建MDX字符串,并使用OPENQUERY()在SSAS服务器上执行它。 MDX只需要获得报告按列排序的度量,然后是行上的期间和产品组。
在存储过程中执行MDX,将结果存储在临时表中,然后使用ROW_NUMBER()或RANK()函数从临时表中选择SELECT,将Rank列添加到输出中。