访问SQL学生未注册的所有课程

时间:2012-12-04 08:07:45

标签: sql ms-access

这里有一个SQL的菜鸟。我正在尝试使用来自访问数据库的数据为我们的部门构建注册表单。这个想法是为每个学生打印一张表格,其中显示所有可用的课程,并且学生已经注册的课程旁边有复选标记。相关表格采用经典的多对多关系

学生(StudentID,FamilyName,GivenName等)

1, Bennett, Shane
2, Bradford, Alex

课程(CourseID,CourseName,Term,Year)

1, Level 1 Math, Winter, 2013
2, Level 1 English, Winter, 2013
3, Level 1 Bio, Winter, 2013

CoursesTaken(StudentID,CourseID)

1, 1
1, 3
2, 2
2, 3

我想要的表是:

注册(FamilyName,GivenName,CourseName,已注册)

Bennett, Shane, Level 1 Math, True
Bennett, Shane, Level 1 English, False
Bennett, Shane, Level 1 Bio, True
Bradford, Alex, Level 1 Math, False
Bradford, Alex, Level 1 English, True
Bradford, Alex, Level 1 Bio, True

我们每学期约有300名学生,每学期约有15个班级,所以我正在寻找一个300x15行的结果表,即每个学生的15个班级。

对我来说,更简单的方法是使用VBA中的DAO记录集简单地找到给定StudentID的所有CoursesTaken,然后使用VBA循环遍历表单并将报告字段设置为true或false。但是(几个小时前)我想可能在SQL中有更好的方法。我看着OUTER JOINS,但似乎结果并不完全是我正在寻找的。我离开这里了吗?

0 个答案:

没有答案