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 语法。
我在 MS-Access 查询中遇到了类似的问题,我通过将等效项更改fName为“表达式”(而不是“分组依据”或“总和”)来解决它。只要我的所有字段都是“表达式”,Access 查询生成器最后不需要任何Group By子句。
GROUP BY 可以从 MS Access 中查询设计视图的 Total 行中选择。
如果总行未显示在设计视图中(如我的情况)。您可以转到 SQL View 并添加 GROUP By fname 等。然后 Total 行将自动显示在设计视图中。
对于计算字段,您必须在此行中选择表达式。