ну общая идея будет понятна.
update OrderToProceed
SET OrderToProceed.TotalSum = NewTable.TotalSumFromOrders
from OrderToProceed OTP
inner join (
select OrderId, (Quantity * Price) TotalSumFromOrders
from ProductsInOrder PIN
inner join Product P
on PIN.ProductId = P.Id
) as NewTable
on OTP.Id = NewTable.OrderId
Тут, как я понимаю, получилось так, что он выбирает OrderId и делает каст Количеств * Цена как TotalSumFromOrders,
но не могу понять дальнейших действий, так как NewTable - это таблица с Айдишками и суммой по позиции, но не сгруппированная по OrderId. В итоге, как я понимаю, оно должно записать первое или последнее значение, которое соответствует условию OTP.Id = NewTable.OrderId