Сообщения

Сообщения за октябрь, 2023

Поиск дублирующих строк в истории кода КВИ, у которых некорректно заполнены даты

/* Ищем КВИ с историей более 1 строки и датой начала в строке больше чем дата окончания */ SELECT b.caption||'('||b.ID||')' AS "Бюджет",        k.code AS "КВИ",        kl.description,        kl.begin_date,        kl.end_date   FROM KI_LINES kl   JOIN KI k ON k.ID = kl.MASTER_ID   JOIN budget b ON b.ID = k.BUDGET_ID   WHERE kl.MASTER_ID IN (SELECT kl2.master_id FROM KI_LINES kl2 GROUP BY kl2.master_id HAVING COUNT(1) > 1)    AND k.BUDGET_ID = <ID бюджета>    AND kl.BEGIN_DATE > kl.END_DATE  ORDER BY k.CODE;

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

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