Min gissning är att eftersom du har visat oss ett förenklat schema, saknas viss information som skulle avgöra varför de upprepade VarietyID-värdena för ett givet OrderID.
När du har flera rader väljer SQL Server godtyckligt en av dem för uppdateringen.
Om så är fallet måste du gruppera först
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
Om inte, är OrderItems-tabellen PK fel eftersom den tillåter dubbletter av OrderID/VarietyID-kombinationer (PK:n bör vara OrderID/VarietyID, eller så bör dessa begränsas unika)