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

Business Objects 4.x:如何实现类UNION的两查询合并及全量代码展示

Business Objects 合并双查询结果并展示全量代码

你需要实现两个查询的全外连接,从而保留双方所有的Code值,以下是两种可行方案:

方案一:报表层通过合并维度实现(无需Universe权限)

  1. 把两个查询都导入报表,确保数据管理器中能看到两个结果集
  2. 合并Code维度:
    • 从两个查询中分别拖出Code到报表同一单元格,系统会自动提示合并,选择「合并」;或右键维度面板的其中一个Code,选「合并」后选中另一个查询的Code
  3. 设置合并维度为全外连接:
    • 点击顶部菜单「数据」→「数据提供者」→「编辑合并」
    • 在弹窗中找到合并后的Code维度,将连接类型改为全外连接(Full Outer Join)
  4. 创建分查询的求和度量:
    • 新建变量Value1:=Sum([Query 1].[Value]) In ([Code]),用于计算Query1中各Code的时长总和
    • 新建变量Value2:=Sum([Query 2].[Value]) In ([Code]),用于计算Query2中各Code的时长总和
    • 如需把空值转为0,可修改为=If(IsNull([Value1]);0;[Value1])、=If(IsNull([Value2]);0;[Value2])
  5. 构建报表:
    • 拖入合并后的Code、Value1、Value2到表格
    • 添加总计行:对Value1用=Sum([Value1]),Value2用=Sum([Value2]),即可得到目标报表

方案二:Universe层创建全联合查询(需编辑权限)

若你有权限操作Universe,可直接在查询阶段合并数据:

  1. 打开Query1的查询面板,点击「查询」→「添加联合查询」
  2. 将Query2的查询逻辑复制到联合查询中,确保两个查询的列名、数据类型完全一致
  3. 选择联合类型为全联合(Full Union),这样会返回两个查询的所有行,包含各自独有的Code
  4. 回到报表层,创建变量区分两个查询的数值:
    • 比如=If([Query Source]="Query 1";[Value];0)和=If([Query Source]="Query 2";[Value];0)
  5. 按Code分组对两个变量分别求和,即可生成符合要求的报表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:22:15