2016-10-12 11 views
0

私はVS 2015でクエリビルダを使用してSQLステートメントでGROUP BYしようとしていますが、動作していません...何が間違っているか教えていただけますか?ありがとうございました! :)C#クエリビルダSQL文が機​​能しません。どうすれば修正できますか?

SELECT students_details.class AS Class, students.name AS Name, students.guardian AS Gurdian, students.phone AS Phone, students.mobile AS Mobile 
FROM students_det INNER JOIN students ON students_details.studentID = students.studentID 
ORDER BY Class 
GROUP BY Class 
+1

GROUP BYを使用している場合は、グループ化する列または集計関数のみを選択できます。詳細は、[この質問](http://stackoverflow.com/questions/11991079/select-a-column-in-sql-not-in-group-by)を参照してください。 – smoksnes

+0

@smoksnesあなたのコメントを回答に変換してください。 – codelab

+0

@codelab - 確かに。それは答えとしてほんのわずかだが、今はそこにある... – smoksnes

答えて

2

あなたがGROUP BYを使用している場合、あなたはあなたがすることによってグループ化またはaggregation functionsている列を選択することができます。詳細はthis questionです。それともMSDNとしてそれを置く:

通常、1件のまたは複数の集計グループごとに を行う目的のために、 行のグループにクエリ結果を分割SELECT文の句。 SELECT文は、グループごとに1行を返します。

各行がClassによってグループ化されますので、だからあなたの場合にはあなただけの、Classを選択することができます。 C#でDictionary<string, List<Row>>と見なすことができます。ここではstringは異なるクラスで、は残りの行です。または、2次元配列のように。

おそらく、クラス別に注文するか(group byなし)、クラスの集計関数を実行するだけです。例えば、各クラスには何人の学生がいますか?

SELECT students_details.class AS Class, count(*) AS NumberOfStudents 
FROM students_det INNER JOIN students ON students_details.studentID = students.studentID 
ORDER BY Class 
GROUP BY Class 
関連する問題