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

如何在SQL查询中合并指定两行数据并求和(将9条结果变为8条)

实现两行合并求和的SQL修改方案

要把CD为455000和456000的两行合并成一行并展示求和结果,核心是对这两个CD做统一映射,再基于映射后的字段分组。具体修改如下:

修改后的完整SQL

SELECT 
    -- 将455000和456000映射为同一标识,也可替换为其中一个CD值
    CASE 
        WHEN BF_BDOB.CD IN ('455000', '456000') THEN '455000_合并'
        ELSE BF_BDOB.CD 
    END AS CD,
    -- 对应名称统一处理,若两个CD名称相同可直接用BF_BDOB.NM
    CASE 
        WHEN BF_BDOB.CD IN ('455000', '456000') THEN '合并项名称'
        ELSE BF_BDOB.NM 
    END AS NM,
    MV_BF_ORGN_CNSL.BF_ORGN_PARN_CD,
    ROUND(SUM(CASE WHEN [BF_TM_PERD_RLUP_VW].BF_TM_PERD_PARN_CD = 'PY2ACT' THEN bf_data.data ELSE 0 END), 0) AS PY2ACT 
FROM        
    BF_BDOB 
INNER JOIN
    BF_DATA 
INNER JOIN
    BF_BDOB_RLUP ON BF_DATA.BF_BDOB_ID = BF_BDOB_RLUP.BF_BDOB_CHLD_ID 
INNER JOIN
    MV_BF_ORGN_CNSL ON BF_DATA.BF_ORGN_ID = MV_BF_ORGN_CNSL.ID ON BF_BDOB.ID = BF_BDOB_RLUP.BF_BDOB_PARN_ID 
LEFT OUTER JOIN
    BF_TM_PERD_RLUP_VW ON BF_DATA.BF_TM_PERD_CD = BF_TM_PERD_RLUP_VW.CD
WHERE     
    BF_BDOB_RLUP.RLUP_NUM = 3
    AND BF_BDOB.CD IN ('451000', '453000', '454000', '455000', '456000', '477000', '478000', '495000', '498000')
GROUP BY 
    -- GROUP BY需与SELECT中的映射逻辑完全一致
    CASE 
        WHEN BF_BDOB.CD IN ('455000', '456000') THEN '455000_合并'
        ELSE BF_BDOB.CD 
    END,
    CASE 
        WHEN BF_BDOB.CD IN ('455000', '456000') THEN '合并项名称'
        ELSE BF_BDOB.NM 
    END,
    MV_BF_ORGN_CNSL.BF_ORGN_PARN_CD,
    MV_BF_ORGN_CNSL.BF_ORGN_CNSL_SLCN_CD, 
    MV_BF_ORGN_CNSL.XTRN_LEVL, 
    BF_BDOB.OBJ_TYP
HAVING     
    MV_BF_ORGN_CNSL.BF_ORGN_CNSL_SLCN_CD = '2324'
    AND MV_BF_ORGN_CNSL.XTRN_LEVL = '3'
    AND MV_BF_ORGN_CNSL.BF_ORGN_PARN_CD = '5100000'
    AND BF_BDOB.OBJ_TYP = 'R'

关键修改点

  1. CD字段映射:通过CASE语句将455000和456000转为同一个值,让这两行进入同一分组。
  2. 名称字段统一:如果两个CD对应的名称不同,同样用CASE统一显示名称;若名称相同,可直接保留BF_BDOB.NM。
  3. GROUP BY同步调整:必须保证GROUP BY中的字段和SELECT里的非聚合字段逻辑完全一致,否则分组会出错。
  4. 筛选逻辑优化:把原HAVING中的CD筛选移到WHERE子句,提升查询效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:20:38