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;