は以下の表を取り、彼らは異なる時間にあってもよいと...集計されていない列をSQLの集計関数にGROUP BY句に含めることなく含めることはできますか?
Classes
ClassId ClassName
1 Math
2 Math
3 Science
4 Music
Registrations
RegistrationId ClassId StudentName
1 1 Stu
2 1 Rick
3 2 John
4 4 Barb
5 4 Dan
6 3 Einstein
はい、同じ名前(数学)との2クラスがあります。各クラスに登録されているクラスと受講者のリストを取得したいと思います。私は、次の列(ClassId、ClassName、StudentCount)が欲しいです。この時
私の試みは
SELECT Classes.ClassId, Classes.ClassName, Count(Registrations.RegistrationId)
FROM Classes
INNER JOIN Registrations ON Classes.ClassId = Registrations.ClassId
GROUP BY Classes.ClassId
...の線に沿って何か(私はCLASSIDではなく、クラス名をGROUPBYしたいと思います)になります。これはSQLServer 2008で可能ですか?明らかに私はSQLが文句を言うので尋ねる
"ClassName is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."
ありがとう!
サブクエリ内のIDと集計カウントだけを選択してから、その名前のテーブルに戻って結合することができます。 – Pointy