2

我刚刚继承了一些似乎执行以下操作的报告:

在数据集中,有一个调用
code.getmymdx(dateparam, anotherparam, blahblahparam,...)

然后在代码中出现了一系列循环,天知道如何构造随后的 MDX 语句。

到目前为止,我发现“查看”MDX 的唯一方法是将表达式放在相同的文本框中,即

 = code.getmymdx(datep...

当然有更好的方法将东西传递给 SSAS 吗?

4

1 回答 1

1

哇,他们说编码大师编写的代码会编写代码,但在这种情况下,我认为这是矫枉过正。Code.getmymdx() 函数可能强制执行合法的业务规则,但如果它只是递归构造 MDX 语句的一种奇特方式,那么对于聪明但无聊的编码人员来说,这听起来只是一个有趣的项目。由于您概述的原因,在实践中不是那么有用 - 您如何查看查询文本?

诚然,MDX 是一种很难编写的语言,但是 SSRS 中有一个内置工具可以直观地编写 MDX 查询。它还允许您创建计算成员,因此在深入了解 mdx 并进行手动编辑之前,这是一个很好的起点。创建到“Microsoft SQL Server Analysis Services”的数据源连接,然后当您创建数据集并编辑查询时,它将连接到多维数据集并让您拖放字段,以及创建参数、过滤器,正如我已经说过的计算。

在某些情况下,出于各种原因(例如,组合多个数据源),我对某些报告使用了带有内联 MDX 的存储过程。在深入研究并手动编辑它之前,我仍然经常从创建 MDX 的自动工具开始。保存存储过程的 SQL Server 具有到 SSAS 实例的链接服务器连接,并在动态 SQL 中使用 Openquery()。复杂但至少您存储的过程都在一个易于管理的地方。

于 2012-10-09T06:02:18.230 回答