マルチテーブルクエリに少し問題があります。(RDBMS:アクセス)
データベース スキーマは次のとおりです。 (このクエリでは、S_Cards、Books、Authors、Students テーブルのみが使用されます) S_Cards は Student book order (in library) です。
クエリ: 学生の間で最も人気のある著者と、その著者の図書館で注文された本の数を選択します。
注文と著者のリストを 1 つのクエリで取得できますが、次のようになります。
SELECT
Students.FirstName & " " & Students.LastName AS [Student],
Books.Name AS [Book], Authors.FirstName & " " & Authors.LastName AS [Author]
FROM
Students,
Books,
S_Cards,
Authors
WHERE
S_Cards.ID_Student = Students.ID
AND S_Cards.ID_Book = Books.ID
AND Books.ID_Author = Authors.ID
ORDER BY Authors.LastName
結果 (申し訳ありませんが、ロシア語です):
なぜ私はこのように COUNT と GROUP BY ができないのか分かりません:
SELECT
Students.FirstName & " " & Students.LastName AS [Student],
Books.Name AS [Book],
COUNT(Authors.FirstName & " " & Authors.LastName) AS [Number of books]
FROM Students, Books, S_Cards, Authors
WHERE
S_Cards.ID_Student = Students.ID
AND S_Cards.ID_Book = Books.ID
AND Books.ID_Author = Authors.ID
GROUP BY 3
「Authors.FirstName & " " & Authors.LastName」は静的関数またはグループの一部ではないというエラーが表示されます。
質問:
- JOIN を使用せずに、GROUP BY、SELECT、UNION のみでこのクエリを実行する方法はありますか?
- 2 番目のクエリの問題は何ですか?