SQL Serverに少し夢中になっているタスクがあり、誰かが助けてくれるかどうか疑問に思っています。
タスク:
データベース内で、という名前のストアドプロシージャを作成する必要がありますClassRegistration。このストアドプロシージャの結果セットの列は、次のとおりである必要があります。
[Class]–教えられるクラスの名前[Teacher Name]-クラスを教えている人の名前[Registrations]-クラスを受講するために登録した生徒の数[Number Paid]-クラスの料金を支払った生徒の数
テーブル:
[Teacher]:Teacher_ID(PK)、TeacherName[Class]:Class_ID(PK)ClassName、、Teacher_ID(FK)[ClassRegistration]Student_ID(FK)、Class_ID(FK)、HasPaidFees[Student]Student_ID(PK)、StudentName
まだ誰も登録していない場合でも、大学はすべてのクラスについて知る必要があります。
これまでの私のSQL:
Create PROCEDURE ClassRegistration
AS
SELECT DISTINCT
c.ClassName,
t.TeacherName,
COUNT(cr.Student_ID) As Registrations,
COUNT(case when cr.HasPaidFees = 1 then 1 else null end) As NumberPaid
FROM
Class As c,
Teacher As t,
ClassRegistration As cr,
Student As s
WHERE
(c.Class_ID = cr.Class_ID)
AND (cr.Student_ID = s.Student_ID)
GROUP BY c.ClassName, t.TeacherName
ストアドプロシージャを正常に作成できますが、出力が正しくないように見えます。助けていただければ幸いです:)。