reporting-services - SSRS:动态选择数据集/查询
问题描述
我正在将报告移植到 SSRS,并且我发现 web 应用程序当前以一种奇怪的方式处理的报告。我正在尝试寻找解决方案。
目前,webapp 在调用报表时会执行一些逻辑,并确定是调用一个 sql 查询还是另一个。它们都提供相同的 sql 数据库字段。webapp 的报告构建器使用所使用的任何查询的内容填充一个模板。
好的。我怎样才能用 SSRS 重现这个?据我所知,我的选择是:
- 定义单个数据集并执行逻辑以选择要运行的选择语句。(但是怎么做?)
- 定义两个数据集并使用大量 IIF 语句来选择每个字段中显示的数据集/值。(但这适用于 tablix 吗?)
- 其他我没有想到的东西。
我只需要知道什么是可能的和有效的。
谢谢。
解决方案
一种方法是使用一个名为 的隐藏参数@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 应该处理结果集。
希望我的解释是有道理的。
当然..这只是接近它的一种方式!
推荐阅读
- jdbc - bigquery Simba JDBC 驱动程序是否支持批量查询?
- excel - 如何在 Excel VBA 中复制特定范围值?
- r - For循环查找两个列表之间的匹配项(R)
- c++ - 需要帮助运算符重载,以便我可以显示函数
- python - 在 matplotlib (mpl_finance) 中自定义灯芯和烛台的问题
- json - 难以在反应中显示部分 json 响应
- javascript - 如何在 Plumier 中禁用验证
- html - div col-md-4 内容太大
- java - 从中心位置遍历世界中的 3 维半径
- python - Django Listview 显示 0 个结果