3つのテーブルを結合するレポートページ用のSQLコードを作成しています。ここに私が書いた質問があります。テーブル結合でCOUNT関数を使用する
comm.CommandText = "SELECT Count(DISTINCT Courses.CourseID) AS CourseCount, Count(DISTINCT Students.StudentID) AS StudentCount, Count(Students.StartDate) AS StartCount, School.Name, School.StartDate, School.SchoolFees " +
"FROM Schools " +
"LEFT JOIN Courses ON (School.SchoolID = Courses.SchoolId) " +
"LEFT JOIN Students ON (School.SchoolID = Student.SchoolID) " +
"WHERE School.Active = 1 " +
"GROUP BY School.Name, School.StartDate, School.SchoolFees";
上記のクエリはうまくいきます。しかし、Student.StartDateが条件を満たす各学校のStudent.StartDateの数を表示したいと思います。ここで私が使用したいクエリです
SELECT Count(Students.StartDate)
FROM Students
WHERE Student.StartDate >= DATEADD(month, -1, GETDATE());
上記のクエリをメインクエリの一部として返信したいのですが、それを達成する方法がわかりません。どんな助けもありがとう。ありがとう
あなたの答えは非常に有益でした。私は新しいことを学びました。どうもありがとう。私は少し質問があります。 COALESCE式を取り除くと、「SELECT CourseCount、StudentCount .....」という意味になります。 – elfico
@elfico:そうです。異なるテーブルからデータを選択する際には、テーブル修飾子を使用して、カラム名が十分説明できるようにする必要がある場合でも、カラムがどこにあるのかを示します: 'SELECT c.CourseCount、s.StudentCount、s.StartCount、...' –