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

SQL Server中如何校验Table B与Table A对应记录的数量是否匹配

SQL Server 两表字段匹配校验实现方案

实现逻辑

  • 以TableA为左表执行左连接关联TableB,关联条件为唯一标识符S_O相等,确保仅输出TableA中存在的条目,自动过滤仅在TableB中独有的记录
  • 通过CASE语句同时校验ITEM、QTY字段的一致性,生成对应的状态标识

完整查询语句

SELECT
    A.S_O,
    A.ITEM,
    CASE
        -- 同时满足S_O存在、ITEM一致、QTY一致时标记为OK
        WHEN B.S_O IS NOT NULL 
             AND A.ITEM = B.ITEM 
             AND A.QTY = B.QTY 
        THEN 'OK'
        -- 其余情况(S_O不存在、ITEM不匹配、QTY不匹配)均标记为短缺
        ELSE 'SHORTAGE'
    END AS STATUS
FROM TableA A
LEFT JOIN TableB B
    ON A.S_O = B.S_O

可选扩展

如果只需要查看匹配异常的记录,可在查询末尾加过滤条件:

WHERE CASE WHEN B.S_O IS NOT NULL AND A.ITEM = B.ITEM AND A.QTY = B.QTY THEN 'OK' ELSE 'SHORTAGE' END != 'OK'

效果说明

针对示例数据:

  • TableA中S_O为1、3、4、6的记录,若对应TableB中三个字段完全匹配,输出STATUS为OK;若任意字段不匹配或TableB无对应S_O记录,输出STATUS为SHORTAGE
  • TableB中独有的S_O为7、8的记录不会出现在最终结果中,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:24:04