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

求两表关联后Table2中POLE值不等于Table1的行的SUM值的SQL查询语句

嘿,这个需求其实很好实现,核心就是先把两个表通过关联字段对接起来,筛选出POLE值不匹配的行,再对目标列求和就行。我给你分两种常见场景写SQL,你可以根据实际表结构调整:

1. 只统计两表都有匹配记录的情况(内连接)

假设两个表用关联字段(比如id、order_no这类实际用来关联的列)对接,你要求和的是Table2里的某个数值列(比如amount),基础SQL如下:

SELECT SUM(t2.amount) AS total_mismatch_sum
FROM Table2 t2
INNER JOIN Table1 t1 ON t2.关联字段 = t1.关联字段
WHERE t2.POLE <> t1.POLE;

⚠️ 注意:如果POLE字段可能存在NULL值,上面的<> 不会识别NULL的不匹配场景。要是需要把“一方为NULL、另一方有值”的情况也算进去,得补充判断:

SELECT SUM(t2.amount) AS total_mismatch_sum
FROM Table2 t2
INNER JOIN Table1 t1 ON t2.关联字段 = t1.关联字段
WHERE t2.POLE <> t1.POLE 
   OR t2.POLE IS NULL 
   OR t1.POLE IS NULL;
2. 包含Table2中无Table1匹配记录的情况(左连接)

如果Table2里有些行在Table1中找不到对应记录,你也想把这些行纳入统计(毕竟没有对应值,肯定属于“不相等”范畴),就用左连接:

SELECT SUM(t2.amount) AS total_mismatch_sum
FROM Table2 t2
LEFT JOIN Table1 t1 ON t2.关联字段 = t1.关联字段
WHERE t1.POLE IS NULL -- 没有匹配到Table1的记录
   OR t2.POLE <> t1.POLE; -- 匹配到但POLE值不等

小提示

  • 记得把关联字段替换成你实际用来关联两个表的列名
  • 如果是要统计不相等的行数而非求和数值,把SUM(t2.amount)换成COUNT(*)就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:49:36