1. ホーム
  2. sql

[解決済み】 "指定された集約関数を含まないクエリを実行しようとしました。"

2022-01-20 17:05:43

質問内容

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構文を適用するのに役立ちます。