Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSRS在一份报告中包含两个数据集_Sql Server_Reporting Services_Dataset_Ssrs 2012 - Fatal编程技术网

Sql server SSRS在一份报告中包含两个数据集

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")

我有一份SSRS报告和两个数据集。我的报表有一个表,其中包含数据集1中的所有字段。如果数据集1的id字段=数据集2的id字段,是否可以显示数据集2的字段

我尝试在表中的字段上使用一个表达式来指向数据集2中的字段,但是我认为我需要的两个数据集之间没有链接。是否可以在报表的表达式中执行select子句

如有任何指导,将不胜感激

我尝试了以下表达式,但不起作用:

=iif Sum(Fields!ID.Value, "DataSet2")=Sum(Fields!ID.Value, "DataSet3") then First(Fields!total.Value, "DataSet3")

你的问题是SSRS的经典案例

你有两种方法来实现这一点

  • 子报告(我个人喜欢)
  • 查找函数(我有时觉得很难处理)
  • 方法1:使用子报表在另一个报表中显示一个报表

    • 。创建另一个报表作为子报表,并插入子行数据
    • 在子报表中创建名为ID的参数
    • 在主报表中,单击鼠标右键在子行中插入子报表
    • 右键单击子报表以打开子报表属性,然后在下拉列表中选择子报表名称
    • 在“子报表属性”对话框的左侧面板中,单击“参数”
    • 在ID下拉列表中选择名称,在值下拉列表中选择[ID]
    方法2:在SSRS中使用lookupset函数

    在“表达式”对话框中,将表达式修改为如下所示:

    =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