SSRS报表:合并不同数据源同结构员工表数据的实现方案
合并在职/离职员工表数据的解决方案
嘿,这个需求其实挺典型的,刚好两张表结构完全一致,还没有重复的Employee_ID,用下面的方法就能轻松把数据合并到同一报表里:
用SQL直接合并(适合数据库端处理)
如果你的报表是直接从数据库取数,用UNION ALL是最高效的方式——因为不用做额外的去重操作(题目已经明确没有重复ID),比UNION性能更好。
假设在职员工库叫CurrentStaffDB,离职员工库叫FormerStaffDB,两张表都叫Employee,那SQL语句可以这么写:
-- 合并两张表的所有字段,还能按需排序 SELECT Employee_ID, First_Name, Last_Name FROM CurrentStaffDB.dbo.Employee UNION ALL SELECT Employee_ID, First_Name, Last_Name FROM FormerStaffDB.dbo.Employee ORDER BY Employee_ID; -- 可选:按员工ID排序让报表更整齐
要是你需要给数据加个“员工状态”标识(方便报表里区分在职/离职),还可以加个自定义字段:
SELECT Employee_ID, First_Name, Last_Name, '在职' AS Employee_Status FROM CurrentStaffDB.dbo.Employee UNION ALL SELECT Employee_ID, First_Name, Last_Name, '离职' AS Employee_Status FROM FormerStaffDB.dbo.Employee ORDER BY Employee_Status, Employee_ID;
用报表工具的可视化合并(适合无SQL基础的场景)
如果是用Power BI、Tableau这类报表工具,不用写SQL也能搞定:
- 先把两个数据库的
Employee表都导入到工具里 - 找到“追加查询”(Power BI)或“合并数据集”(Tableau)的功能,选择把离职员工表的数据追加到在职员工表后面
- 最后直接用合并后的数据集做报表表格就行
这样不管是用SQL还是报表工具,都能把两张表的数据完美合并展示在同一个报表表格里啦~
内容的提问来源于stack exchange,提问作者falik
相关产品推荐
相关产品推荐

