You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS合并两个跨数据库Dataset至同一Tablix并分组的实现需求

实现两个跨库Dataset合并并按Region分组显示的方案

一、先合并两个数据集(数据源层面推荐做法)

因为两个Dataset来自不同数据库,最直接的方式是通过数据库查询直接合并数据,避免报表层面的复杂处理:

示例SQL查询(以SQL Server为例)

假设Dataset1来自数据库DB1的表Table1,Dataset2来自数据库DB2的表Table2,通过链接服务器访问DB2:

-- 统一列名,合并两个数据集的所有数据
SELECT 
    Region, 
    rate_on_bill AS Rate_on_bill 
FROM DB1.dbo.Table1
UNION ALL
SELECT 
    Region, 
    Rate_on_bill 
FROM LinkedServer_DB2.DB2.dbo.Table2
-- 按Region分组排序,确保同区域的数据集中显示
ORDER BY Region, Rate_on_bill

注意:如果是其他数据库(如Oracle、MySQL),可对应使用数据库支持的跨库查询语法实现UNION ALL合并。

二、Tablix控件设置

将上述合并后的数据集绑定到报表的Tablix,按以下步骤配置:

  • 添加Tablix并绑定合并后的数据集。
  • 配置行分组:在Tablix的行组面板中添加父组,分组依据选择Region字段。
  • 调整显示:
    • 将Region字段拖到分组行的单元格中,确保同一Region只显示一次。
    • 将Rate_on_bill字段拖到细节行的单元格中,这样同一Region下的所有费率值会逐行显示,与你期望的输出格式一致。

可选:将同Region的费率合并到同一单元格(换行显示)

如果需要把同一Region的所有费率值放在单个单元格内换行显示,可在单元格中使用以下表达式:

=Join(LookupSet(Fields!Region.Value, Fields!Region.Value, Fields!Rate_on_bill.Value, "合并后的数据集名称"), vbCrLf)

此方式会将同区域的所有费率用换行符分隔,显示在同一个单元格里。

内容的提问来源于stack exchange,提问作者Ravi Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:45:32