sql-server - SSRS 一份报告中的两个数据集
问题描述
我有一个包含两个数据集的 SSRS 报告。我的报告有一个表,其中包含数据集 1 中的所有字段。如果数据集 1 中的 id 字段 = 数据集 2 中的 id 字段,是否可以显示数据集 2 中的字段?
我尝试在表中的字段上使用表达式来指向数据集 2 中的字段,但我认为我需要的 2 个数据集之间没有链接。你能在报告的表达式中做一个选择子句吗?
任何指导将不胜感激
我尝试了以下表达式,但它不起作用:
=iif Sum(Fields!ID.Value, "DataSet2")=Sum(Fields!ID.Value, "DataSet3") then First(Fields!total.Value, "DataSet3")
解决方案
你的问题是非常经典的SSRS案例。
您有两种方法可以实现这一目标
- 子报告(我个人喜欢)
- 查找函数(我有时觉得很难处理)
方法1:使用子报表在另一个报表中显示一个报表
- .创建另一个报表作为子报表并插入子行数据。
- 在子报表中创建一个名为 ID 的参数。
- 在主报表中,右键单击以在子行中插入子报表。
- 右键单击子报表以打开子报表属性,然后在下拉列表中选择子报表名称。
- 在“子报表属性”对话框的左侧面板中,单击“参数”。
- 在ID下拉列表中选择Name,在Value下拉列表中选择[ID]。
方法2:在SSRS中使用lookupset函数
在“表达式”对话框中,将表达式修改为如下所示:
=join(Lookupset(Fields!ID.Value,Fields!ID.Value,Fields!Subject.Value,"DataSet2"),",")
以下截图供大家参考(tablix是使用DataSet1):
参考文献:
推荐阅读
- python - 将 django 从 2.0.13 升级到 2.1.0 后,用户身份验证总是失败,包括 manage.py 更改密码
- android - ViewModel onChanged() 被无限调用
- php - 从多个用户sql php更新数据的效果
- javascript - 我在这里做错了什么?我得到提示,但在我做出选择后没有出现警报
- mysql - Spring Boot Hikari 连接泄漏
- r - 您可以遍历列和每列的唯一变量以在 R 中创建摘要吗?
- javascript - 如何防止 javascript 对象被转换为长度为 1 的对象数组?
- docker - Docker:用户上传图片
- asp.net-core - 在配置上找不到众所周知的错误
- angular - Angular Generic Form 动态下拉菜单