In vechtsporten zijn instructeurs ook studenten -- dus de Instructor
tabel is gesubtypeerd naar de Student
tafel. Alle algemene velden staan in de Student
tabel en alleen kolommen die specifiek zijn voor instructeurs staan in de Instructor
tafel.
De Art
tabel heeft een lijst met kunsten die de school aanbiedt (judo, karate ...).
De school kan meerdere kamers hebben, deze staan vermeld in de Room
tafel.
ClassSchedule
beschrijft het gepubliceerde lesrooster dat de school aanbiedt.
Aanwezigheid wordt vastgelegd in de Attendance
tafel.
Eén rij in de Calendar
tafel is één kalenderdag (datum). De tabel heeft datum-eigenschappen zoals DayOfWeek
, MonthName
, MonthNumberInYear
enz.
Eén rij in de TimeTable
is één minuut van een dag, bijvoorbeeld 7:05.
Kalender en Tijdtabel zorgen voor eenvoudige aanwezigheidsrapportage op datum/tijd, bijvoorbeeld
-- Attendance of judo morning classes
-- for the first three months of the year 2010
-- by day of a week (Sun, Mon, Tue, ..)
select
DayOfWeek
, count(1) as Students
from ClassSchedule as a
join Calendar as b on b.CalendarId = a.CalendarId
join TimeTable as c on c.TimeID = a.StartTimeId
join Attendance as d on d.ClassId = a.ClassID
join Art as e on e.ArtId = a.ArtID
where ArtName = 'judo'
and Year = 2010
and MonthNumberInYear between 1 and 3
and PartOfDay = 'morning'
group by DayOfWeek ;
Ik hoop dat je hiermee aan de slag kunt.