У меня есть таблица COA
, в которой хранятся все счета
COA_ID|Name|Category
Таблица Journal
содержит все двойные записи для дебетовых и кредитных операций для каждой транзакции.
DOC_No|COA_ID|Amount_NU|Descrip
select Journal.COA_ID as [Acct Code],Name as [Acct Name],
case when
sum(case when Category in ('FA_Cost') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('FA_Cost') and Amount_NU < 0 then
Amount_NU else 0 end) > 0 then sum(Amount_NU) else 0 end as
[Debit Bal],
case when
sum(case when Category in ('FA_Cost') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('FA_Cost') and Amount_NU < 0 then
Amount_NU else 0 end) < 0 then sum(Amount_NU) else 0 end as
[Credit Bal]
from Journal join COA
on Journal.COA_ID = COA.COA_ID
where Category in ('FA')
group by Name,Journal.COA_ID
union all
select Journal.COA_ID as [Acct Code],Name as [Acct Name],
case when
sum(case when Category in ('FA') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('FA') and Amount_NU < 0 then
Amount_NU else 0 end) > 0
then sum(Amount_NU) else 0 end as [Debit Bal],
case when
sum(case when Category in ('FA') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('FA') and Amount_NU < 0 then
Amount_NU else 0 end) < 0
then sum(Amount_NU) else 0 end as [Credit Bal]
from Journal join COA
on Journal.COA_ID = COA.COA_ID
where Category in ('CA')
group by Name,Journal.COA_ID
union all
select Journal.COA_ID as [Acct Code],Name as [Acct Name],
case when
sum(case when Category in ('CA') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('CA') and Amount_NU < 0 then
Amount_NU else 0 end) > 0
then sum(Amount_NU) else 0 end as [Debit Bal],
case when
sum(case when Category in ('CA') and Amount_NU > 0 then
Amount_NU else 0 end) +
sum(case when Category in ('CA') and Amount_NU < 0 then
Amount_NU else 0 end) < 0
then sum(Amount_NU) else 0 end as [Credit Bal]
from Journal join COA
on Journal.COA_ID = COA.COA_ID
where Category in ('Expense')
group by Name,Journal.COA_ID
union all
select '','Total Movement in 2019',
sum( case when Amount_NU >0 and Category in
('FA','CA') then Amount_NU else 0 end) +
sum( case when Amount_NU <0 and Category in
('FA','CA') then Amount_NU else 0 end),0
from Journal join COA
on Journal.COA_ID = COA.COA_ID
union all
select '','Total PL Movement in 2019',
sum( case when Amount_NU <0 and Year_SI = '2019' and Category in
('FA','CA') then Amount_NU else 0 end) +
sum( case when Amount_NU >0 and Year_SI = '2019' and Category in
('FA','CA') then Amount_NU else 0 end),0
from Journal join COA
on Journal.COA_ID = COA.COA_ID
Они группируются по имени учетной записи, как и ожидалось.Я хочу сгруппировать их по категориям аккаунтов, но все равно выполнить расчет дебетов и кредитов, как это уже происходит.Как мне этого добиться?Я использую этот запрос для генерации XtraReport
.Вот чего я хочу достичь:
FA:
account name1 Debit Credit
account name2 Debit Credit
CA:
account name3 Debit Credit
account name4 Debit Credit
и т. Д.