Sql server SSRS在一份报告中包含两个数据集
我有一份SSRS报告和两个数据集。我的报表有一个表,其中包含数据集1中的所有字段。如果数据集1的id字段=数据集2的id字段,是否可以显示数据集2的字段 我尝试在表中的字段上使用一个表达式来指向数据集2中的字段,但是我认为我需要的两个数据集之间没有链接。是否可以在报表的表达式中执行select子句 如有任何指导,将不胜感激 我尝试了以下表达式,但不起作用:Sql server SSRS在一份报告中包含两个数据集,sql-server,reporting-services,dataset,ssrs-2012,Sql Server,Reporting Services,Dataset,Ssrs 2012,我有一份SSRS报告和两个数据集。我的报表有一个表,其中包含数据集1中的所有字段。如果数据集1的id字段=数据集2的id字段,是否可以显示数据集2的字段 我尝试在表中的字段上使用一个表达式来指向数据集2中的字段,但是我认为我需要的两个数据集之间没有链接。是否可以在报表的表达式中执行select子句 如有任何指导,将不胜感激 我尝试了以下表达式,但不起作用: =iif Sum(Fields!ID.Value, "DataSet2")=Sum(Fields!ID.Value, "DataSet3")
=iif Sum(Fields!ID.Value, "DataSet2")=Sum(Fields!ID.Value, "DataSet3") then First(Fields!total.Value, "DataSet3")
你的问题是SSRS的经典案例 你有两种方法来实现这一点
- 。创建另一个报表作为子报表,并插入子行数据
- 在子报表中创建名为ID的参数
- 在主报表中,单击鼠标右键在子行中插入子报表
- 右键单击子报表以打开子报表属性,然后在下拉列表中选择子报表名称
- 在“子报表属性”对话框的左侧面板中,单击“参数”
- 在ID下拉列表中选择名称,在值下拉列表中选择[ID]
=join(Lookupset(Fields!ID.Value,Fields!ID.Value,Fields!Subject.Value,"DataSet2"),",")
以下屏幕截图供您参考(tablix将使用数据集1):
参考资料:
请参见@testtoo我看到了这一点,并在表达式中引用了dataset 2中的我的字段,但它只是在报告中重复相同的值没有指向第一个dataset的链接您可以使用Lookup函数从第二个dataset获取数据。感谢您的回答,这正是我需要它做的。但是,如果我看到的两个dataset中没有匹配的数据,那么要使用原始数据集中的字段这可能吗?这就像在lookuper中添加一个else?
=IIF(Isnothing(lookuper(Fields!ID.Value,Fields!ID.Value,Fields!Subject.Value,“DataSet2”)),Fields!Subject.Value,join(lookuper(Fields!ID.Value,Fields!ID.Value,Fields!Subject.Value,“DataSet2”),“,”)
注意:Fields!Subject.Value是您的上下文表的字段,即如果您有使用表1的tablix,那么它就是表1,如果您有使用表2的tablix,那么字段!Subject.值来自表2是否可以对该查找的字段求和?当前返回值,如1,2,3,4,我希望它是总和,所以只有值10