在子选择T-SQL中聚合函数

问题描述

我只是刚开始使用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)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...