Eu estou supondo que (como outros apontaram) você realmente não quer um cartesiano nesta atualização, então eu adicionei um "id" à consulta, então você terá que fazer alguma modificação, mas isso pode levá-lo ao caminho certo
;with temp as (
select a.id, SUM(a.pazartesi - b.kota) as newTotal
from [asgdb01].[dbo].[info] a join [asgdb01].[dbo].[kota] b
on a.id = b.id
where a.work_type='in' and a.name='alp' )
update a
set fm = t.newTotal
from [asgdb01].[dbo].[info] a join temp t on a.id = t.id