【问题标题】:Identify Duplicate Invoice number with prefix or suffixe识别带有前缀或后缀的重复发票号码
【发布时间】:2018-11-13 19:41:04
【问题描述】:

我正在使用 access 2013 并尝试识别向供应商支付的重复付款。我使用下面的 SQL 查询来识别不同类型的重复项,但它没有给出预期的结果,因为有时两个标准是不同的,例如发票编号和发票日期。

SELECT 
Base.ID AS SerialNumber, 
Base.CoCd AS CoCode, 
Base.DocumentNo AS DocID, 
Base.ClrngdocNo AS ClearingDoc, 
Base.DocumentType AS DocType, 
Base.Account AS VendorName, 
Base.Reference AS InvoiceNumber, 
Base.DocumentDate AS InvoiceDate, 
Base.GrossInvoiceAmount AS InvAmount

FROM RawData2017TillDate AS Base 
INNER JOIN RawData2017TillDate AS duplicate 
ON (Base.ID <> duplicate.ID) 
AND (Base.Account = duplicate.Account) 
AND (Base.Reference <> duplicate.Reference) 
AND (Base.DocumentDate = duplicate.DocumentDate) 
AND (Base.GrossInvoiceAmount = duplicate.GrossInvoiceAmount)
ORDER BY Base.GrossInvoiceAmount DESC , Base.reference DESC;

我只想通过单个查询来识别在发票编号开头或结尾添加一个或多个字符的重复项,如下例所示 2713565 2713565R, 01456 1456, I-0001118588 1118588

此外,如果我能获得更好的查询来根据其他标准识别重复项,我们将不胜感激。我正在寻找所有条件的单个查询。

提前致谢!

【问题讨论】:

    标签: sql ms-access ms-access-2013


    【解决方案1】:

    请尝试如下:

    我根据发票编号的前 2 个字母对它们进行分组。

    SELECT  
    Mid(Base.reference, 1, 2) , count(1)
    FROM RawData2017TillDate AS Base 
    INNER JOIN RawData2017TillDate AS duplicate 
    ON (Base.ID <> duplicate.ID) 
    AND (Base.Account = duplicate.Account) 
    AND (Base.Reference <> duplicate.Reference) 
    AND (Base.DocumentDate = duplicate.DocumentDate) 
    AND (Base.GrossInvoiceAmount = duplicate.GrossInvoiceAmount)
    group by  Mid(Base.reference, 1, 2) ;
    

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 2017-09-01
      • 2010-10-25
      • 2012-10-03
      • 2013-07-05
      • 2017-12-02
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多