Загрузка данных


BEGIN;

SET LOCAL statement_timeout = '20s';

EXPLAIN (ANALYZE, BUFFERS, TIMING OFF)
WITH charge_operations AS MATERIALIZED (
    SELECT o.id
    FROM back_office.operation o
    WHERE o.operation_type_id = (
        SELECT id
        FROM back_office.operation_type
        WHERE code = 'CHARGE_FROM_RESERVE'
    )
      AND o.ops_assignee_decision_id IS NOT NULL
      AND o.approved IS NOT NULL
      AND o.deleted IS NULL
      AND o.effective_date <= current_date
)
SELECT sum(t.value)
FROM charge_operations co
CROSS JOIN LATERAL (
    SELECT
        tr.credit_account_id,
        tr.value
    FROM back_office.transaction tr
    WHERE tr.operation_id = co.id
    OFFSET 0
) t
JOIN back_office.account ca
    ON ca.id = t.credit_account_id
WHERE ca.account_type_id = (
    SELECT id
    FROM back_office.account_type
    WHERE mnemonics = 'НВ ПП ОПС'
);

ROLLBACK;