select Customers.cust_id, count(Orders.cust_id)
from Customers left outer join Orders
on Customers.cust_id=Orders.cust_id
group by Customers.cust_id
これはすべてを正しく表示します。集約を持つ非常に基本的なSQLスクリプト
select Customers.cust_id, ***Customers.cust_name***, count(Orders.cust_id)
from Customers left outer join Orders
on Customers.cust_id=Orders.cust_id
group by Customers.cust_id
,,あなたのクエリは、集計関数のポートとして指定された式「CUST_NAME」を含んでいません。」
なぜそれがありますか?お客様の各CUST_IDがCUST_NAMEに名前を持っています。何故でしょうこのエラーメッセージ?(集計関数で使用されていない)
* Customersの各cust_idには、cust_name。*の名前があります。アクセスはそのことを認識していません。それはあなたの言葉を取るべきでしょうか?すべての集約されていない列は集約SQLクエリのグループ化として指定する必要があるため、 'group by'句に' cust_name'を追加するだけです。 – Parfait
エラーメッセージは**問題が何であるかを正確かつ明確に伝えています** **クエリに集計関数**の一部として* cust_name *は含まれていません**。つまり、 'GROUP BY'節にリストされる必要があります。実際に**エラーメッセージで**の言葉を読むことを学ぶべきです。彼らはほとんど常に実際の意味を伝えています。ルールは次のとおりです:IOW、 'COUNT()'、 'AVG()'、または 'MAX()'のように()によって関数に含まれていない場合、 GROUP BYで指定します。 –
... MySqlを使用している場合を除き、ここではansi規格に違反しています。ありがとうhttp://stackoverflow.com/search?q=%5Bms-access%5D+not+include+aggregate –