Zgaduję, że (jak zauważyli inni) tak naprawdę nie chcesz kartezjana w tej aktualizacji, więc dodałem „id” do zapytania, więc będziesz musiał dokonać pewnych modyfikacji, ale może to skierować cię na właściwą ścieżkę
;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