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

SQL语句返回非预期重复结果:PRRF批发价与PK01零售价匹配逻辑异常

SQL查询返回多余价目表记录问题修复方案

问题根因

需求明确要求零售价目表与批发价目表首字母一致,仅可为首字母M或S开头,但现有SQL仅对零售价目表做了M/S开头的限制,未添加零售价目表与对应批发价目表首字母一致的关联条件,导致S开头的批发价目表同时匹配到了M开头和S开头的两个零售价目表,出现多余记录。

修复方案

在零售价目表对应表t3的LEFT JOIN关联条件中,新增首字母匹配规则即可。
你当前使用的LIKE '[M,S]%'为SQL Server支持的通配符语法,修改后的t3关联逻辑如下:

left join cugex1 t3 on t3.cono = odhead.cono
    and t3.pk01 LIKE '[M,S]%'
    and LEFT(t1.prrf, 1) = LEFT(t3.pk01, 1) -- 新增首字母匹配条件
    and t3.a130 = t1.proj
    and t3.pk02 = odhead.cucd 
    and t3.a030 <> 'WHOLESALE'

若使用MySQL、PostgreSQL等不支持[]通配符的数据库,需同步调整首字母校验逻辑,以MySQL为例:

left join cugex1 t3 on t3.cono = odhead.cono
    and (t3.pk01 LIKE 'M%' OR t3.pk01 LIKE 'S%') -- 适配非SQL Server数据库的M/S开头校验
    and LEFT(t1.prrf, 1) = LEFT(t3.pk01, 1) -- 新增首字母匹配条件
    and t3.a130 = t1.proj
    and t3.pk02 = odhead.cucd 
    and t3.a030 <> 'WHOLESALE'

修改后查询结果将仅返回批发价、零售价首字母一致的记录,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:15:03