2015-12-18 2 views
0

Я пытаюсь найти дубликаты счетов в отделе дебиторской задолженности. Я попытался написать запрос, чтобы найти общие ошибки несколькими разными способами, но лучший запрос, который я написал до сих пор, имеет много ложных срабатываний в результатах. Обычно счета-фактуры оплачиваются случайно разными поставщиками или разными номерами компаний и даже иногда одному и тому же поставщику.SQL-запрос для поиска дублирующих счетов-фактур

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; 
+2

вы потеряли значение 'having by' clause.put после' group by'. – brenners1302

+0

Что-то не так с тем, как вы вводите пример кода. Тем не менее, он выглядит близко, используя HAVING COUNT (INVOICE)> = 2. Пожалуйста, исправьте сообщение, чтобы быть более разборчивым. – openwonk

+0

@ brenners1302 заметил его. HAVING приходит после GROUP BY – openwonk

ответ

0

Move HAVING к после GROUP BY.

SELECT Invoice, COUNT(Invoice), ... 
FROM ... 
WHERE ... 
GROUP BY Invoice, ... 
HAVING COUNT(Invoice) >= 2 

Обратите внимание, что ... просто наполнитель для фактического кода.

Также общее правило имеет только GROUP BY полей в SELECT заявление.

Смежные вопросы