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


union all

select
    cast(
        (
            select coalesce(max(ind.id), 0)
            from ourpension.spr_indicator_bu ind
        )
        + row_number() over (order by m.account)
        as integer
    ) as id,
    1 as step,
    'Счёт ' || m.account as name,
    m.account as accounts,
    m.s_pu,
    m.s_bu,
    m.s_pu - m.s_bu as razn

from (
    select
        rd.account,
        sum(
            coalesce(rd.sum_dt_pu, 0)
            - coalesce(rd.sum_ct_pu, 0)
        ) as s_pu,
        sum(
            coalesce(rd.sum_dt_bu, 0)
            - coalesce(rd.sum_ct_bu, 0)
        ) as s_bu

    from back_office.report_conformity_pu_bu_detail rd

    join back_office.report_conformity_pu_bu r
        on r.id = rd.report_conformity_pu_bu_id

    where rd.report_conformity_pu_bu_id = $P{id}
      and not exists (
          select 1
          from ourpension.spr_accounts_indicator_bu sa
          join ourpension.spr_indicator_bu si
              on si.id = sa.spr_indicator_bu_id
          where sa.account = rd.account
            and r.service_type = any(si.service_type)
      )

    group by rd.account
) m