sql - “您试图执行不包含指定的聚合函数的查询”

标签 sql ms-access

SELECT SUM(orders.quantity) AS num, fName, surname
FROM author
INNER JOIN book ON author.aID = book.authorID;


我不断收到错误消息:“您试图执行不包含指定表达式“ fName”的查询作为聚合函数的一部分。我该怎么办?

最佳答案

该错误是因为fName包含在SELECT列表中,但没有包含在GROUP BY子句中,并且不是聚合函数(Count()Min()Max()Sum()等)

您可以通过在fName中包含GROUP BY来解决该问题。但是,您将在surname上遇到同样的问题。因此,将它们都放在GROUP BY中:



SELECT
    fName,
    surname,
    Count(*) AS num_rows
FROM
    author
    INNER JOIN book
    ON author.aID = book.authorID;
GROUP BY
    fName,
    surname


注意我在需要Count(*)的地方使用了SUM(orders.quantity)。但是,orders不包含在查询的FROM部分中,因此必须先包含它,然后才能Sum()它的一个字段。

如果您有可用的Access,请在查询设计器中构建查询。它可以帮助您了解哪些功能是可能的,并应用正确的Access SQL语法。

关于sql - “您试图执行不包含指定的聚合函数的查询”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430500/

相关文章:

ms-access - 为什么在 Microsoft Access DB 中 Select * 比 Select Top 1 更快

ms-access - 如何配置 Squirrel SQL 客户端以与 MS Access 一起使用

c# - 没有弹出窗口,错误源是rdr = cmd.executereader();

mysql - 搜索比 '%something.%' 更快的查询

php - 合并mysql中的依赖查询

sql - 如何在同一张表中以不同条件检索同一列两次?

sql - Access 数据库,通过最大问题选择组

sql - PostgreSQL:通过数组的元素从另一个表中选择数据然后按顺序显示

php - 什么更有效率?连接到数据库或在数组中有几百行?

ms-access - 在 VBA 中验证电子邮件收件人字段值