20 日後に行われる学期試験のアプリケーションを作成しています。私のアプリは、教師が教員の時間割をより簡単に作成できるように支援する必要があります。
データベースアプローチ(Sql Server 2008およびDelphi XE2)を使用しています。学生編成の構造を説明する表がいくつかあります。Years
、Series
、Specializations
、Groups
およびがありSemiGroups
ます。画像のように、Years
含むSeries
、Series
含むSpecializations
、Specializations
含むGroups
、Groups
含むまたは含まない可能性がありますSemiGroups
。Courses
、Teachers
、ClassRooms
、Days
およびのテーブルもありHourlyIntervals
ます。
いくつかの条件があります:
教師は、1 つまたは複数のスペシャライゼーション、または 1 つまたは複数のグループ、または 1 つまたは複数のセミグループを含むコースを受講できます。
2 つ目の条件は、コースが TeachingCourse、Seminary、Laboratory の 3 つのタイプであることです (CourseName ごとに 3 つのうち 2 つのみが可能です)。(Scheduler.CourseType char(3) 列に格納されます)
3 つ目: コースは、学期のすべての週、奇数週、または 2 で割り切れる週数で保持できます (Scheduler.Week char(3) 列に格納されます)。
そのため、相関関係を SchedulerTable に格納しています。
そのため、グループに特定の教師のコースがある場合、対応する ID のみを紹介します。
フォームを導入するほぼすべてのデータを作成し、現在はアプリケーションのレポート部分にいます。MSSQL 2008 の Report Services を使用しています。特定の Specialization (グループやセミグループを含む) のすべての相関を含むスケジューラを一覧表示したいと考えています。その特定の専門分野に属するグループのすべての相関関係を表示することはできましたが、専門分野とセミグループのコースを表示することはできませんでした。
これは、特定のスペシャライゼーションからグループ相関を返すクエリです。
SELECT Days.DayName, HourlyIntervals.HourlyIntervalName, Scheduler.Week, Scheduler.CourseType, Courses.CourseName, ClassRooms.ClassRoomName, Teachers.TeacherName,Specializations.SpecName, Groups.GroupsName
FROM Scheduler INNER JOIN
Groups ON Scheduler.GroupID = Groups.GroupID INNER JOIN
Days ON Scheduler.DayID = Days.DayID INNER JOIN
HourlyIntervals ON Scheduler.HourlyIntervalID = HourlyIntervals.HourlyIntervalID INNER JOIN
Teachers ON Scheduler.TeacherID = Teachers.TeacherID INNER JOIN
Courses ON Scheduler.CourseID = Courses.CourseID INNER JOIN
ClassRooms ON Scheduler.ClassRoomID = ClassRooms.ClassRoomID INNER JOIN
Specializations ON Groups.IDSpec = Specializations.IDSpec
WHERE (Specializations.ID = @SpecID)
ORDER BY Days.DayID, HourlyIntervals.HourlyIntervalID
しかし、その特定の専門分野のセミグループ、グループ、および専門分野の相関関係を返したいと思っています。この Scheduler.SemiGroupID=Semigroups.SemigroupID で結合を追加しようとしましたが、クエリは 0 の結果を返します。自分のやりたいことができるかどうかはわかりませんが、アイデアをくれた人には感謝しています。または、相関テーブルに別の構造を使用する必要があります ( SchedulerTable
)。
これは、入手したいサンプル レポート(PDF ファイル) です。
編集理由: 問題のより良い説明