将2个数据集中的数据绑定到SSRS中的一个Tablix中

问题描述

我必须将来自2个不同数据集的数据合并到单个Tablix中,并应按日期时间排序。

例如:
数据集1:

DateTime                      Product       Employee  
2020-08-13 18:10:53.263       ABC             A

数据集2:

DateTime                      Product       Employee  
2020-08-13 19:10:20.000       XYZ             A  

ResultSet:

DateTime                      Product       Employee  
2020-08-13 18:10:53.263       ABC             A  
2020-08-13 19:10:20.000       XYZ             A 

注意:由于数据集引用2个不同的数据源,因此无法在数据库级别合并来自两个数据集的数据。

我对LOOKUP有一个想法,但我想可以在列级别使用,但是我的情况是需要根据Datetime排序在2个数据集中的行级别显示数据。

有人可以建议是否有办法实现这一目标。

提前谢谢!

解决方法

如果数据库位于同一台服务器上,则可以简单地将结果统一在一起

SELECT [DateTime],[Product],[Employee]
    FROM [database_A].[mySchema].[myFirstTable]
UNION ALL
SELECT [DateTime],[Employee]
    FROM [database_B].[myotherSchema].[myOtherFirstTable]

如果它们位于不同的服务器上,则创建一个链接服务器(有关详细信息,请参见here

然后使用相同的查询,但在第二个引用之前使用服务器名称/链接服务器名称

SELECT [DateTime],[Employee]
    FROM [myLinkedServerName].[database_B].[myotherSchema].[myOtherFirstTable]

现在,您将拥有一个包含所有数据的数据集,而不会头痛!


如果您有两个现有的存储过程


如果您有两个SP,则仍然可以执行此操作,但方式略有不同。像

CREATE TABLE #t([DateTime] DateTime,Product varchar(50),Employee int)

INSERT INTO #t
    EXEC #myFirstProc

INSERT INTO #t
    EXEC #mySecondProc

SELECT * FROM #t