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

三表求和校验后更新Table B(ty=6)Amt字段的SQL需求

数据求和与校验更新需求

需求概述

需对三张表执行分组求和操作,若表B与表C的求和结果之和与表A的求和结果不一致,则更新表B中指定数据的金额字段。

各表分组求和查询语句

表A(gmr.BFR_CAL)

查询语句:

SELECT Unit, `group`, City, startdate, sum(Amt)
FROM gmr.BFR_CAL 
GROUP BY unit, `group`, city, startdate

示例结果:

tyre    mrf   hyder     12-04-23  49

表B(gmr.DRAFT中ty=6的数据)

查询语句:

SELECT Unit, `group`, City, startdate, sum(Amt) 
FROM gmr.DRAFT 
WHERE ty = 6
GROUP BY unit, `group`, city, startdate

示例结果:

tyre    mrf   hyder     12-04-23  5

表C(gmr.DRAFT中ty≠6的数据)

查询语句:

SELECT Unit, `group`, City, startdate, sum(Amt) 
FROM gmr.DRAFT 
WHERE ty <> 6
GROUP BY unit, `group`, city, startdate;

示例结果:

tyre    mrf   hyder     12-04-23  18

校验与更新规则

  • 校验条件:当表B求和值 + 表C求和值 ≠ 表A求和值时,触发更新操作。
  • 更新逻辑:更新表B中ty=6的Amt字段,计算公式为:
AMT = 表A求和值 - (表B求和值 + 表C求和值)

计算示例

根据上述示例数据:

AMT = 49 - (18 + 5)
AMT = 49 - 23
AMT = 26

更新后表B数据

将表B中原Amt值为5的记录更新为26,最终结果:

tyre    mrf   hyder     12-04-23  26

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:42:38