Я предполагаю, что, поскольку вы показали нам упрощенную схему, отсутствует некоторая информация, которая бы определяла, почему повторяющиеся значения VarietyID для данного OrderID.
Если у вас несколько строк, SQL Server произвольно выберетодин из них для обновления.
Если дело обстоит именно так, вам нужно сначала сгруппировать
UPDATE V
SET
Stock = Stock - foo.SumQuantity
FROM
tblVariety V
JOIN
(SELECT SUM(Quantity) AS SumQuantity, VarietyID
FROM tblOrderItem
JOIN tblOrder ON tblOrderItem.OrderId = tblOrder.OrderId
WHERE tblOrder.OrderId = 1
GROUP BY VarietyID
) foo ON V.VarietyId = foo.VarietyId
Если нет, то таблица PK OrderItems неверна, поскольку, если допускает дублирование OrderID / VarietyIDкомбинации (PK должен быть OrderID / VarietyID, или они должны быть ограничены уникальными)