Поскольку в таблице уже указаны долларовые значения в виде отрицательных значений, вы можете использовать простую формулу:
select
Item,
sum(PriceVal),
sum(CostVal),
sum(PriceVal-CostVal)
from Table
group by Item
Я не думаю, что вы должны вычитать кредитные позиции, поскольку они уже отрицательные.
Если вы действительно хотите, хотите, чтобы чистая Количество транзакций:
select
Item,
sum(PriceVal),
sum(CostVal),
sum(case when charge_code = 'CH' then 1 else 0 end) -
sum(case when charge_code = 'CR' then -1 else 0 end)
from Table
group by Item
или, если есть только два кода оплаты, заменить:
sum(case when charge_code = 'CH' then 1 else -1 end)
для последнего столбца.