Если я вас правильно понял, это может быть то, что вы после
declare @tbl1 table (CodeRaw INT, Serial_Raw INT, Qty INT)
declare @tbl2 table (CodeBatch INT, CodeRaw INT, Serial_Raw INT, QtyAdded INT)
insert into @tbl1 values (1,1,100), (1,2,150), (2,1,80), (1,3,100)
insert into @tbl2 values (1,1,1,80), (2,1,1,10), (3,1,2,150), (4,1,3,80)
select t2.Serial_Raw,
t3.Qty - sum(t2.QtyAdded) as Total_Remaining
from @tbl2 t2
inner join ( select t1.Serial_Raw,
t1.CodeRaw,
sum(t1.Qty) as Qty
from @tbl1 t1
group by t1.Serial_Raw, t1.CodeRaw
) t3
on t2.Serial_Raw = t3.Serial_Raw
and t2.CodeRaw = t3.CodeRaw
group by t2.Serial_Raw, t3.Qty
Так что в t2
мы получаем все различные Serial_Raw
значения и суммируем их QtyAdded
из первой таблицы.
В t3 мы получаем все Qty
значения из 2-й таблицы.
Все, что нам нужно сделать, это объединить их и вычесть
Результат этого запроса
Serial_Raw Total_Remaining
---------- ---------------
1 10
2 0
3 20