Формула, которую вы хотите использовать, она используется, если вы хотите сделать продукт между значениями в разных строках.Так что в вашем случае это не относится.Вам нужно сделать для каждой строки преобразование в базовую валюту (?) И обновить поле.
Так что в вашем случае (не зная вашей схемы), я бы сказал что-то вроде:
UPDATE CMS.HoldingADeal
SET PriceHoldingADeal = (Select Sum(PricePartOfOneHoldingADeal * c.rate) total
from CMS.PartOfOneHoldingADeal p
join currencies c
on p.currencyId = c.id
where PartOfOneHoldingADeal.IDHoldingADeal=@ChangedDataID)
where HoldingADeal.IDHoldingADeal = @ChangedDataID;
Учитывая, что у вас есть столбец курсов, который переводится в вашу базовую валюту.Вы можете возиться с ним в случае, если ваша таблица валют отличается.Также вам нужно убедиться, что у вас есть все валюты, иначе запрос не будет выполнен.
Если вы считаете, что там нет базовой валюты, тогда сделайте левое соединение вместо объединения и добавьте isnull вваше значение
isnull(PricePartOfOneHoldingADeal * c.rate,PricePartOfOneHoldingADeal)