SELECT SUM(orders.quantity) AS num, fName, surname
FROM author
INNER JOIN book ON author.aID = book.authorID;
I keep getting the error message: "you tried to execute a query that does not include the specified expression "fName" as part of an aggregate function. What do I do?
The error is because
fName
is included in theSELECT
list, but is not included in aGROUP BY
clause and is not part of an aggregate function (Count()
,Min()
,Max()
,Sum()
, etc.)You can fix that problem by including
fName
in aGROUP BY
. But then you will face the same issue withsurname
. So put both in theGROUP BY
:Note I used
Count(*)
where you wantedSUM(orders.quantity)
. However,orders
isn't included in theFROM
section of your query, so you must include it before you canSum()
one of its fields.If you have Access available, build the query in the query designer. It can help you understand what features are possible and apply the correct Access SQL syntax.
I had a similar problem in a MS-Access query, and I solved it by changing my equivalent
fName
to an "Expression" (as opposed to "Group By" or "Sum"). So long as all of my fields were "Expression", the Access query builder did not require anyGroup By
clause at the end.GROUP BY can be selected from Total row in query design view in MS Access.
If Total row not shown in design view (as in my case). You can go to SQL View and add GROUP By fname etc. Then Total row will automatically show in design view.
You have to select as Expression in this row for calculated fields.