【问题标题】:Bind data from 2 datasets into one tablix in SSRS将 2 个数据集的数据绑定到 SSRS 中的一个 tablix
【发布时间】:2020-12-03 08:42:26
【问题描述】:

我必须将来自 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  

结果集:

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

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

我对 LOOKUP 有一个想法,但我想它可以在列级别使用,但我的情况是我需要根据日期时间排序显示来自 2 个数据集的行级别的数据。

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

提前谢谢你!!

【问题讨论】:

  • 数据源是什么?例如SQL Server 和 Oracle 或 SQL 和 csv 文件等?如果我知道您的数据来自哪里,“可能”有办法解决?
  • @AlanSchofield : 两个数据源都来自 SQL 服务器数据库(2 个不同的数据库)

标签: reporting-services dataset ssrs-2012 ssrs-tablix


【解决方案1】:

如果数据库在同一台服务器上,那么您可以简单地将结果联合起来,例如

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

如果它们在不同的服务器上,则创建一个链接服务器(有关如何执行此操作的详细信息是here

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

SELECT [DateTime], [Product], [Employee]
    FROM [database_A].[mySchema].[myFirstTable]
UNION ALL
SELECT [DateTime], [Product], [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

【讨论】:

  • 感谢您的回复。是的,我们可以在数据库级别做到这一点。但是我的情况是,我需要在报告级别,因为我需要大量时间才能从代码中动态实现它,而且我没有足够的时间。如果我们可以在报告中执行此操作,请建议我。
  • 据我所知,我知道没有办法直接在 SSRS 中执行此操作。如果您搜索“SSRS UNION 2 数据集”之类的内容,您会看到很多关于如何模拟结果的示例,但没有一个示例可以为您提供包含所有结果的单个 tablix。
  • 如果您当前正在使用存储过程,我会更新答案,这就是阻碍您的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-10
相关资源
最近更新 更多