Personally I prefer UPDATE JOIN as I've used it in mysql:
UPDATE inventory
INNER JOIN (SELECT sum(quantity) AS amt, itemId FROM sales GROUP BY 2) AS daily USING (itemId)
SET quantity = quantity - daily.amt;
I had thought postgres could do it this way without the extra FROM syntax, but apparently not.