BO开发项目中如何将3个Universe交易数据按行合并而非融合?
行合并图书馆Universe交易数据的解决方案
在BO平台内实现(Web Intelligence)
直接用WebI的Union操作就能完成行合并,步骤如下:
- 新建Web Intelligence文档,依次添加三个图书馆服务的Universe作为数据源
- 为每个数据源创建仅包含「Customer ID」「Date of transaction」「Library used」的查询
- 选中三个查询,执行**Union(并集)**操作:若需要唯一交易记录,选择「Union(去重)」;若保留所有重复交易,选择「Union All」
- 调整报表布局,即可得到所有交易的长列表
用Crystal Reports实现
Crystal Reports完全适配这类行合并需求,两种实现方式:
多数据源分节展示
- 依次添加三个Universe作为报表数据源
- 新建三个Details节,分别绑定对应数据源的目标字段(Customer ID、交易日期、使用的图书馆)
- 若需去重,通过「报表>选择专家」配置去重规则,或在数据源查询阶段设置去重逻辑
Command对象直接写SQL(推荐)
- 创建报表时选择「Command」作为数据源
- 编写包含UNION(去重)或UNION ALL(保留全部)的SQL语句,一次性合并三个Universe的交易数据,示例逻辑:
SELECT Customer_ID, Date_of_transaction, Library_used FROM 图书借阅表 UNION SELECT Customer_ID, Date_of_transaction, Library_used FROM 电脑使用时段表 UNION SELECT Customer_ID, Date_of_transaction, Library_used FROM 电子资源借阅表
- 执行Command后直接绑定字段生成报表
工具选择建议
如果是BO项目内的需求,优先用WebI的Union操作,更贴合BO生态且无需额外工具切换;若你已熟悉Crystal Reports的操作流程,用它也能高效完成需求,两种工具都能实现你要的「所有交易长列表」效果,核心是用Union并集代替同事展示的Merge融合功能。
内容的提问来源于stack exchange,提问作者JHH
相关产品推荐
相关产品推荐

