Поиск дублирующих проводок

-- Вывод дублирующих бюджетных проводок с меньшим ID
SELECT DISTINCT(count(a.document_id)) FROM PLANLOG a
JOIN DOCUMENT d ON d.ID = a.DOCUMENT_ID
 WHERE EXISTS( SELECT 1
                 FROM PLANLOG b
                WHERE a.BUDGCARRY_ID = b.BUDGCARRY_ID
                  AND a.DOCUMENT_ID = b.DOCUMENT_ID
                  AND a.DELTA_AMT = b.DELTA_AMT
                  AND a.ID < b.ID )
   AND d.DOCUMENTCLASS_ID = 11
   AND a.CARRY_DATE > to_date('18.08.2023', 'dd.mm.yyyy');

-- Удаляем дублирующую бюджетную проводку с меньшим ID
DELETE FROM PLANLOG a
 WHERE EXISTS( SELECT 1
                 FROM PLANLOG b
                WHERE a.BUDGCARRY_ID = b.BUDGCARRY_ID
                  AND a.DOCUMENT_ID = b.DOCUMENT_ID
                  AND a.DELTA_AMT = b.DELTA_AMT
                  AND a.ID < b.ID )
   AND a.DOCUMENT_ID in (<ID, можно через запятую>);

Комментарии

Популярные сообщения из этого блога

ЭС с ЦБ РФ. РЕКВИЗИТНЫЙ СОСТАВ ЭС

ТФФ 35.0. Полный перечень документов альбома ТФФ (Таблица 2)

Linux (РедОС). Сброс пароля

ТФФ 34.0. Полный перечень документов альбома ТФФ (Таблица 2)

ТФФ 32.0. Полный перечень документов альбома ТФФ (Таблица 2)