Domnívám se, že protože jste nám ukázali zjednodušené schéma, chybí některé informace, které by určovaly, proč mít pro dané OrderID opakované hodnoty VarietyID.
Pokud máte více řádků, SQL Server libovolně vybere jeden z nich pro aktualizaci.
Pokud je to váš případ, musíte se nejprve seskupit
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
Pokud ne, pak je tabulka OrderItems PK chybná, protože pokud umožňuje duplicitní kombinace OrderID/VarietyID (PK by měla být OrderID/VarietyID, nebo by měly být omezeny jako jedinečné)