Как сгруппировать записи по категориям в XtraReport - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть таблица 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

и т. Д.

...