SQL查询以查找重复发票
我试图在我的应付账款部门找到重复的发票。我试着用几种不同的方法编写查询来查找常见错误,但迄今为止我编写的最好的查询在结果中有很多误报。发票在不同供应商或不同公司编号下意外付款是很常见的,有时甚至向同一供应商付款SQL查询以查找重复发票,sql,oracle,Sql,Oracle,我试图在我的应付账款部门找到重复的发票。我试着用几种不同的方法编写查询来查找常见错误,但迄今为止我编写的最好的查询在结果中有很多误报。发票在不同供应商或不同公司编号下意外付款是很常见的,有时甚至向同一供应商付款 SELECT INVOICE, --VENDOR IDVENDORNAME, --INVOICEAMOUNT, COUNT(INVOICE), SUM(INVOICEAMOUNT) FROM payablesinvoice WHERE IDVENDORNAME != 'UNKNOWN'
SELECT INVOICE,
--VENDOR
IDVENDORNAME,
--INVOICEAMOUNT,
COUNT(INVOICE),
SUM(INVOICEAMOUNT)
FROM payablesinvoice
WHERE IDVENDORNAME != 'UNKNOWN'
AND APCOMPANY != 0
HAVING COUNT(INVOICE) >= 2
GROUP BY INVOICE, VENDOR, IDVENDORNAME, INVOICEAMOUNT;
将具有的
移动到分组方式之后
SELECT Invoice, COUNT(Invoice), ...
FROM ...
WHERE ...
GROUP BY Invoice, ...
HAVING COUNT(Invoice) >= 2
请注意,…
只是实际代码的填充
此外,一般的经验法则是在SELECT
语句中只有groupby
字段。您将having BY
子句放错了位置。请将其放在groupby
之后。您输入示例代码的方式有问题。但是,使用COUNT(INVOICE)>=2看起来很接近。请更正帖子,使其更清晰。@brenners1302发现了它。在小组讨论之后,你能提供更多关于假阳性例子的具体信息吗?另外,您似乎在选择
中注释了几个分组依据
字段。这些字段可能重复