Reporting services 如何组合来自两个数据集SSR的字段?

Reporting services 如何组合来自两个数据集SSR的字段?,reporting-services,dataset,Reporting Services,Dataset,我正在编写一份报告,显示员工工作的总小时数。我们公司通过服务请求和工单跟踪工时,因此我需要将每个工时的总计计入报告中 我创建了两个数据集——一个用于工单,另一个用于服务请求。理想情况下,我希望将工单总小时数与服务请求总小时数结合起来,并显示employeeID列出的数字,因为两个数据集都有employeeID字段 我认为这很简单: =(SUM(Fields!TOTALHOURS_WO.Value, "DataSet1") + SUM(Fields!TOTALHOURS_SR.Value, "Da

我正在编写一份报告,显示员工工作的总小时数。我们公司通过服务请求和工单跟踪工时,因此我需要将每个工时的总计计入报告中

我创建了两个数据集——一个用于工单,另一个用于服务请求。理想情况下,我希望将工单总小时数与服务请求总小时数结合起来,并显示employeeID列出的数字,因为两个数据集都有employeeID字段

我认为这很简单:

=(SUM(Fields!TOTALHOURS_WO.Value, "DataSet1") + SUM(Fields!TOTALHOURS_SR.Value, "DataSet2")) 
我没有得到一个错误,但是,我得到一个数字,每个员工重复,所以我知道我做错了什么

非常感谢您的帮助。

Mal

正如@StevenWhite所提到的,查找可能是您正在寻找的功能

这里有一个例子。对于示例数据集:

EmployeeID | TOTALHOURS_WO
-----------------------------------
123        |   12
456        |    3

EmployeeNum| TOTALHOURS_SR
-----------------------------------
123        |    2
456        |    5
您将注意到,SSRS报告中的每个表都需要分配一个数据集。我假设您的表使用的是我们的第一个数据集,我们将其命名为“DataSet1”。上面的第二个数据集是“数据集2”

对于总小时数,您将使用表达式。它应该是这样的:

=TOTALHOURS_WO + LOOKUP(Fields!EmployeeID.Value, Fields!EmployeeNum.Value, Fields!TOTALHOURS_SR.Value, "DataSet2")
因此,您将把本地数据集中的TOTALHOURS_WO添加到查找函数的结果中。查找所做的是从本地数据集中获取第一个字段,在提供给函数的数据集中查找匹配项(作为字符串),然后从匹配的行返回该字段。最后一个参数是要搜索的数据集

以防万一你出错。。。将数据强制转换为您想要使用的类型总是一个好主意,以防它出错。所以

=CINT(TOTALHOURS_WO) + CINT(LOOKUP(Fields!EmployeeID.Value, Fields!EmployeeNum.Value, Fields!TOTALHOURS_SR.Value, "DataSet2"))
这假设您在员工ID上有一对一的匹配。如果必须对两个字段求和,您可以尝试以下方法:

=SUM(CINT(TOTALHOURS_WO)) + SUM(LOOKUPSET(Fields!EmployeeID.Value, Fields!EmployeeNum.Value, CINT(Fields!TOTALHOURS_SR.Value), "DataSet2"))
TOTALHOURS_WO的总和将为您提供当前表组中的总和(因此请确保您在表中按员工ID进行分组)。然后将其添加到LOOKUPSET的总和中。LOOKUPSET的工作原理与lookup相同,但返回一个匹配数组,而不是第一个匹配数组


希望这能有所帮助。

使用不同数据集的字段时,会有很多问题。您必须使用
查找
功能,因此请尝试搜索该功能。幸运的是,非常感谢您的帮助。我现在理解了查找函数,并且得到了我所期望的数字。再次感谢你!很好,很高兴我能帮忙。请注明答案,谢谢!