Условно агрегировать (т.е. использовать CASE WHEN
внутри SUM
):
select
d.column5,
d.column2,
j.completed,
j.pending
from eft_table d
left join
(
select
column1, column2, column3, column5,
sum(case when column6 = 'CL' then amount end) as completed,
sum(case when column6 = 'WC' then amount end) as pending
from eft_table
where column4 = 'N'
and column7 = 'B'
group by column1, column2, column3, column5
) j on j.column1 = d.column1
and j.column2 = d.column2
and j.column3 = d.column3
and j.column5 = d.column5
where d.column7 = 'A'
and d.column3 between trunc(sysdate) - 1 and trunc(sysdate)
order by d.column5, d.column2;