Сообщения

Показаны сообщения с ярлыком "sqlAzk"

АЦК. Вывести информация по времени обработки ПФХД

/* Вывести информацию по времени обработки */ SELECT ('ПФХД №'||trim(d.DOC_NUMBER)||' от '||TRIM(d.DOC_DATE)) AS "Документ",    t.ACTION_DATE AS "Дата действия",    'Перевод ЭД со ст."'||ds.CAPTION||' ('||ds.ID||')" на ст."'||ds2.CAPTION||' ('||ds2.ID||')" по действию "'||t.ACTION_NAME||'"' AS "Действие",    t.TASK_TIME/1000 AS "Время затр. (сек.)",        s.username   FROM document d   JOIN DOCJOURNAL dj ON dj.DOCUMENT_ID = d.id   JOIN DISPSTATUS ds ON ds.id = dj.OLD_DISPSTATUS_ID   JOIN DISPSTATUS ds2 ON ds2.id = dj.DISPSTATUS_ID   JOIN TASKJOURNAL t ON t.ID = dj.TASKJOURNAL_ID   join sysuser s on s.id = t.sysuser_id  WHERE d.id = <document_id>   order by t.TASK_TIME/1000 DESC;

АЦК. Количество строк в ПФХД

/*Данные по количеству строк */  SELECT f.doc_number, f.DOCUMENT_ID,   f.doc_date, (SELECT count(1) FROM FHDPLANLINE3 f3 WHERE f3.FHDPLAN_ID = f.id) AS "Кол-во строк в Поступления", (SELECT count(1) FROM FHDPLANLINE3 f4 WHERE f4.FHDPLAN_ID = f.id) AS "Кол-во строк в Выплаты"    FROM FHDPLAN f   WHERE f.DOCUMENT_ID = <document_id>;

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

/* Ищем КВИ с историей более 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.BUDG...

АЦК. Проверить какие ПФХД не были перенесены

Импорт ПФХД через АРМ выполняется по документам на ст. "Утвержден". Для поиска НЕ перенесенных автоматически документов можно выполнить запрос: /* Выводим информацию по ПФХД на ст. Утвержден и не перенесенные в 2023 год */ SELECT f.ID , f.DOCUMENT_ID , f.DOC_NUMBER , f.DOC_DATE , f.AMOUNT , o.CAPTION    FROM FHDPLAN f    JOIN ORG o ON o.id = f.ORG_ID  WHERE f.DISPSTATUS_ID=58     AND f.BUDGET_ID =<id бюджета 2022 года>    AND f.ORG_ID NOT IN (SELECT f2.ORG_ID   FROM FHDPLAN f2 WHERE f2.BUDGET_ID =<id бюджета 2023 год>);

SQL. Select c CASE

Для корректировки меню пользователя: UPDATE SYSUSER s  SET s.MENU_ID = (SELECT DISTINCT CASE (SELECT count(1) FROM menu WHERE name ='PlanningMenu') WHEN 1 THEN (SELECT m2.id FROM menu m2 WHERE m2.NAME = 'PlanningMenu') ELSE (SELECT m3.id FROM menu m3 WHERE m3.NAME = 'RootMenu') END FROM menu) WHERE s.USERNAME LIKE 'root';

Поиск связанных документов

SELECT dc.CAPTION AS CLASS,     d.DOC_DATE,    d.DOC_NUMBER,     d.AMOUNT,     ds.CAPTION AS STATUS    FROM document d    JOIN DISPSTATUS ds ON ds.id = d.DISPSTATUS_ID   JOIN DOCUMENTCLASS dc ON dc.id = d.DOCUMENTCLASS_ID   WHERE parent_ID = 800122960493; SELECT dc.CAPTION AS CLASS,     d.DOC_DATE,     d.DOC_NUMBER,     d.AMOUNT,     ds.CAPTION AS STATUS    FROM document d    JOIN DISPSTATUS ds ON ds.id = d.DISPSTATUS_ID   JOIN DOCUMENTCLASS dc ON dc.id = d.DOCUMENTCLASS_ID  WHERE parent_ID = 800122960493; SELECT dc.CAPTION AS CLASS,    b.DOC_DATE,    b.DOC_NUMBER,    b.AMOUNT,    ds.CAPTION AS STATUS    FROM BUDGORDER b    JOIN DISPSTATUS ds ON ds.id = b.DISPSTATUS_ID   JOIN DOCUMENTCLASS dc ON dc.id = b.DOCUMENTCLASS_ID...