このストアドプロシージャは次のようになっています。
userid
およびDate
を入力パラメータとして使用しますId
これが教師のものか生徒のものかを確認してくださいユーザーが学生の場合は、その日の主題と、それぞれが話し合う内容を出力する必要があります。
ユーザーが教師の場合は、その日のクラスと、各クラスで教える内容を出力する必要があります。
私が使用するテーブルは次の
WeeklyPlan (Id, Date, Lesson, Plan)
とおりSubject (Name, Id)
です:Student (userid, name, class)
、、、、、。Teacher (name, userid)
TimeTable (subject, day, class)
今、私はこのストアドプロシージャ(上記の内容を実行することになっています)を作成しましたが、そうではありません。
それで、私がそれを間違って書いたならば、それをチェックして、私に考えを教えてください。また、別の方法で質問する必要がある場合は、教えてください。
ALTER PROCEDURE dbo.GetDaySubjects
(
@UserId int,
@DateToday DateTime
)
AS
IF EXISTS(SELECT Std_UserID
FROM Student
WHERE (Std_UserID = @UserId))
BEGIN
SELECT WeeklyPlan.Wkp_Body, WeeklyPlan.Wkp_Date, WeeklyPlan.Wkp_lesson
FROM Class INNER JOIN
Student ON Class.Cls_ID = Student.Std_Class INNER JOIN
TimeTable ON Class.Cls_ID = TimeTable.Ttb_Class INNER JOIN
Subject ON TimeTable.Ttb_Subject = Subject.sbj_ID INNER JOIN
WeeklyPlan ON Subject.sbj_Name = WeeklyPlan.Wkp_lesson
WHERE (WeeklyPlan.Wkp_Date = @DateToday)
END
ELSE IF EXISTS(SELECT Tch_UserID
FROM Teacher
WHERE (Tch_UserID = @UserId))
BEGIN
SELECT TimeTable.Ttb_Class, WeeklyPlan.Wkp_lesson, WeeklyPlan.Wkp_Body, Teacher.Tch_ID
FROM Subject INNER JOIN
TimeTable ON Subject.sbj_ID = TimeTable.Ttb_Subject INNER JOIN
WeeklyPlan ON Subject.sbj_Name = WeeklyPlan.Wkp_lesson INNER JOIN
Teacher ON TimeTable.Ttb_Teacher = Teacher.Tch_ID
WHERE (WeeklyPlan.Wkp_Date = @DateToday)
END
どうもありがとう。