SSRS:动态选择数据集/查询

时间:2019-05-13 21:04:11

标签: reporting-services ssrs-2012

我正在将报告移植到SSRS,并且发现了webapp当前以一种奇怪的方式处理的报告。我正在尝试寻找解决方案。

当前,当调用报表时,webapp会执行一些逻辑,并弄清楚是调用一个SQL查询还是调用另一个SQL查询。它们都提供相同的sql数据库字段。该Webapp的报表构建器将使用任何查询内容填充一个模板。

好。如何使用SSRS重现此内容?据我所知,我的选择是:

  1. 定义单个数据集并执行逻辑以选择要运行的select语句。 (但是如何?)
  2. 定义两个数据集,并使用大量IIF语句来选择在每个字段中显示哪个数据集/值。 (但是,这是否可以与Tablix一起使用?)
  3. 我没想到的其他事情。

我只需要知道什么是可行和有效的。

谢谢。

1 个答案:

答案 0 :(得分:1)

一种实现方法是拥有一个名为@logic的隐藏参数。

您已经知道什么是逻辑以及对该逻辑运行哪个查询。

比如说您当前的第一个查询是

select table1.columna as a from table1

您当前的第二个查询是

select table2.columna as a from table2

现在可以做的是

select table1.columna as a from table1 where @logic = 0
union all
select table2.columna as a from table2 where @logic = 1

您的报告将根据逻辑将@logic参数传递给数据集。

如果一组@logic = 0,则第二组@logic = 1

这将返回所需的数据集,因为@logic应该在其中处理结果集。

希望我的解释有意义。

当然..这只是实现它的一种方式!