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

如何编写SQL找出不同发票号下重复的交易编号?

解决跨发票号重复交易编号的SQL方案

问题分析

你原有的SQL按sttran、strefno、STDATE分组,统计的是同一发票号、同一日期下的交易编号重复次数,这属于业务允许的情况,自然筛选不出你要的跨发票号重复的交易数据。正确的思路是统计每个交易编号对应的不同发票号数量,当数量大于1时,就是不符合业务逻辑的记录。

方案1:找出所有存在跨发票号重复的交易编号

SELECT sttran, COUNT(DISTINCT strefno) AS distinct_invoice_count
FROM stocktransfer  -- 若实际表名为postfrh,请替换此处
GROUP BY sttran
HAVING COUNT(DISTINCT strefno) > 1

这个查询会列出所有在多个不同发票号下出现的交易编号,以及对应的不同发票号数量。

方案2:列出这些问题交易的全部明细记录

如果需要查看这些问题交易的完整数据,可以用子查询关联原表:

SELECT t.*
FROM stocktransfer t  -- 若实际表名为postfrh,请替换此处
INNER JOIN (
    SELECT sttran
    FROM stocktransfer  -- 若实际表名为postfrh,请替换此处
    GROUP BY sttran
    HAVING COUNT(DISTINCT strefno) > 1
) problematic ON t.sttran = problematic.sttran
ORDER BY t.sttran, t.strefno

这个查询会返回所有跨发票号重复的交易的完整行数据,方便你进一步核查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:06:27