Поиск дублирующих проводок
-- Вывод дублирующих бюджетных проводок с меньшим 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, можно через запятую>);
Комментарии
Отправить комментарий