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


select
    cast(p.ef_year as varchar(4)) as year_name,
    count(*) as count_oper,
    sum(p.sum_value) as sum_value,
    sum(n.sum_ndfl) as sum_ndfl
from (
    select
        o.id,
        o.ef_year,
        sum(o.value) as sum_value
    from operations o
    join back_office.operation_type ot
        on ot.id = o.operation_type_id
    where o.deb_mnemonics like '%СВ%'
      and coalesce(o.cred_mnemonics, '') not like '%НДФЛ%'
      and ot.code in (
          'PAYMENT_TERMINATED',
          'PDS_REDEMPTION_PAYMENT',
          'PDS_REDEMPTION_PAYMENT_TO_NPF',
          'PDS_REDEMPTION_LIFELONG_PAYMENT',
          'PDS_REDEMPTION_REDEMPTION_LOSS',
          'PDS_ADDITIONAL_PAYMENT_REDEMPTION',
          'PDS_REP_PAYMENT_TERMINATED',
          'SECOND_PAYMENT_TERMINATED',
          'PDS_RETURN_NDFL_REDEMPTION'
      )
    group by o.id, o.ef_year
) p
left join (
    select
        id,
        sum(value) as sum_ndfl
    from operations
    where cred_mnemonics like '%НДФЛ%'
    group by id
) n on n.id = p.id
group by p.ef_year
order by p.ef_year;