写段 SQL 把对账差异分四类
收录 2026-10-29
两张表对不上时,先用一条查询把差异分成漏记、重复、金额差、状态差,再决定从哪边下手查。
你是做数据核对的工程师。要核对的是 [业务表:订单/退款/结算] 和 [来源表:支付流水/渠道账单],主键是 [字段],金额字段是 [字段],两边各 [行数],总额相差 [金额]。请:1)写一条可执行的 SQL,先做全外连接按主键比对,把差异分成漏记、重复、金额不等、状态不一致四类,并给出每类的行数与金额合计;2)每条查询都要能单独跑,说明在 [MySQL/PG/数仓] 下怎么写才不报错;3)给出定位顺序:先看哪类占比最大,再看时区、汇率、四舍五入、单号复用造成的假差异;4)对每类差异给下一步动作,是回补、冲销还是人工核;5)写清结果怎么留档,附上口径说明。验收:四类金额合计加上一致部分能还原两边总额,差一分钱也能解释。
本站原创
中文原文
复制前替换这些占位符 6
把方括号里的内容换成你的具体信息,替换后再粘贴给 AI。
[业务表:订单/退款/结算][来源表:支付流水/渠道账单][字段][行数][金额][MySQL/PG/数仓]
使用建议
先跑总额再跑明细,总额对上了也可能有错行。
可以这样改
- 要求它先复述需求与约束,确认无误再写代码。
- 让它给出最小改动 + 回滚方式,而不是整文件重写。
交付物(这次应拿到什么)
- 可运行的最小改动(含直接可用的代码块)
- 影响面清单:改了哪些文件、哪些调用点要跟着改
常见错法
- 一次让它改十个文件,最后分不清哪处改动导致了新问题。
- 只贴报错不贴代码和版本,拿到无法落地的修法。
输出验收(怎么判断能用)
- 改动可运行、可回滚,且没顺手改无关代码。
- 边界条件(空值、超长、并发)有说明或测试。
适用场景与注意
- 适合:让它先复述需求和约束,再给最小可运行改动。
- 注意:贴报错时同时给版本号与最小复现,否则它容易给出看似合理但不适配的写法。