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


WITH ev_operations AS (
    SELECT o.id
    FROM back_office.operation o
    WHERE o.operation_type_id IN (35, 37, 112, 173)
      AND o.effective_date >= DATE '2025-01-01'
      AND o.effective_date <  DATE '2025-02-01'
),
ev_sharers AS (

    /* Счет со стороны дебета */
    SELECT da.owner_sharer_id AS sharer_id
    FROM ev_operations eo
    JOIN back_office.transaction t
        ON t.operation_id = eo.id
    JOIN back_office.account da
        ON da.id = t.debit_account_id
    LEFT JOIN back_office.account ca
        ON ca.id = t.credit_account_id
    WHERE da.owner_sharer_id IS NOT NULL
      AND da.owner_sharer_id <> COALESCE(ca.owner_sharer_id, -1)

    UNION

    /* Счет со стороны кредита */
    SELECT ca.owner_sharer_id AS sharer_id
    FROM ev_operations eo
    JOIN back_office.transaction t
        ON t.operation_id = eo.id
    JOIN back_office.account ca
        ON ca.id = t.credit_account_id
    WHERE ca.owner_sharer_id IS NOT NULL
)

SELECT count(*) AS sharers_with_ev_payment
FROM ev_sharers;