问题描述
我只是刚开始使用T-SQL并尝试编写更新,但是我需要在子选择中使用一个聚合函数,而我似乎没有。
这是我目前拥有的
Update Roysched
Set Royalty = (Royalty - 2)
Where title_id in (select title_id from sales where SUM(qty) > 30)
但是我收到关于子选择中的聚合的错误
解决方法是什么?
解决方法
您不能在where
子句中使用聚合词-这就是having
子句的用途。请注意,您还缺少group by
子句:
UPDATE roysched
SET royalty = (royalty - 2)
WHERE title_id IN (SELECT title_id
FROM sales
GROUP BY title_id
HAVING SUM(qty) > 30)