Следующий запрос:
select coalesce(to_number(bl.division_code), bud.division) division
, coalesce(bud.glaccountcode, bl.costcenter_costanalysis_period_periods_year_years_balance_code_attr) glaccountcode
, coalesce(bud.costcenter, bl.costcenter_code_attr) costcenter
, coalesce(bud.costunit, bl.code_attr) costunit
, coalesce(bud.reportingyear, bl.costcenter_costanalysis_period_periods_year_reportingyear_attr) reportingyear
, coalesce(bud.reportingperiod, bl.costcenter_costanalysis_period_reportingperiod_attr) reportingperiod
, case when bud.amountdc > 0 then 456 else null end budgetamountdc label 'Budget (anonymized, EUR)'
, case when bl.balance > 0 then 123 else null end actualsamountdc label 'Actuals (anonymized, EUR)'
, case
when bl.division_code is null
then 'budget'
when bud.division is null
then 'balancelines'
else 'both'
end
label 'Source'
from exactonlinexml..balancelinesperperiodcostanalysis bl
full
outer
join exactonlinerest..budgets bud
on bud.division = to_number(bl.division_code)
and bud.glaccountcode = bl.costcenter_costanalysis_period_periods_year_years_balance_code_attr
and bud.costcenter = bl.costcenter_code_attr
and bud.costunit = bl.code_attr
and bud.reportingyear = bl.costcenter_costanalysis_period_periods_year_reportingyear_attr
and bud.reportingperiod = bl.costcenter_costanalysis_period_reportingperiod_attr
объединяет фактические транзакции на счетах Главной книги с соответствующими бюджетами на подробном уровне:
- Компания Exact Online (
division_code
) - Финансовый год (
reportingyear
) - Финансовый период (
reportingperiod
) - Счет Главной книги (
glaccountcode
) - Центр затрат (
costcenter
) - Единица затрат (
costunit
)
Я ожидаю не более одной строки данных на комбинацию этих измерений. Однако для некоторых комбинаций возвращаются 2 строки. Одна из этих строк имеет метку «бюджет», а другая — «баланс».
Кажется, что они как-то не сливаются в единое целое:
Содержимое счета gl 5050 в строках баланса периода 1 в 2019 году представляет собой одну строку с определенной суммой (не равной 0).
Содержимое счета ГК 5050 в бюджетах периода 1 в 2019 году также представляет собой одну строку с определенной суммой (не равной 0).
Кажется, я не могу понять, почему строки не объединяются вместе при полном внешнем соединении и не сливаются.
Что я делаю не так?