我刚开始使用SSRS,并想出如何将我的MDX查询连接到多维数据集并将其插入矩阵
但是,我需要一个矩阵,在每个部分中,我需要调用一个不同的DataSet。
例如:
Matrix1 会有一个基于 DataSetA 的重复部分(假设其客户中心)。
在Matrix1的每个部分(客户中心)中,我将使用 DataSetA 中的值作为<,使用数据集B 的表达式strong>参数(假设它是一个单独的MDX查询,根据客户中心ID获取一些其他信息)。
所以我在tablix单元格中的表达式是这样的:
=First(Fields!MTD_Trades.Value, "DatasetB")
是否可以使用此时的参数传递MDX查询过滤器(或where子句)?
理想情况下它会是这样的(伪代码):
=First(Fields!MTD_Trades.Value, "DatasetB") WHERE Fields!Where_Filter.Value
沿着这些方向的东西..其中MDX WHERE 部分基于另一个查询是动态的
更新 - 解决方案说明
这是我正在做的一个例子:假设应用程序基于空中交通,这里的业务用户是一些航空管理人员。我会给那个人一个UI,让他们定义他们想要看到的切片。例如,他们可以进来,并创建n个切片(即国际航班,离开美国的航班,午夜后抵达的航班,有50多名乘客的航班......)。如您所见,他们可以自由地为每个切片添加他们希望的任何过滤器。
然后根据他们的动作(使用GUI),我将生成必要的MDX查询(每个切片一个)。
我的挑战是创建一个SSRS报告,为每个切片(1-n)显示一个单独的行。希望有助于理解我的难题。对于每个切片(航班数量),查询的第一部分将是相同的,但WHERE部分对于报告而言将是不同的且动态的。
答案 0 :(得分:1)
您可以使用lookup()
函数从报表项中访问其他数据集中的数据,但不能在报表中运行多个子查询。您只能在参数中执行此操作,其中一个参数可以是另一个查询驱动参数的输入。
最佳操作方法是修改原始查询以包含Matrix所需的所有数据。
编辑:听起来你需要使用多值参数。
allow multiple values
=Join(Parameters!Slices.Value,",")
的表达式。