0

我对如何构造这个查询有点困惑。我有两张表,一张有毕业要求(GradReq),一张有获得的学生学分(StoredGrades)。GradReq 列出了每个“学分桶”以及可以填充它的相关课程编号。StoredGrades 列出了课程编号以及学生是否通过了课程。理论例子如下。

GradReq:
CreditBucket   CourseNumber
Algebra I        100000
Algebra I        100001
Algebra II       100001
Algebra II       100002

StoredGrades:
CourseNumber   Passed   StudentID
100001            1       30003

我遇到的问题是,通过标准(左)加入,代数 I 和代数 II 学分桶将为学生 30003 填充,而实际上该学分只能使用一次。有任何想法吗?

我认为最好遍历每个信用桶并一次评估它们,但我不确定这会是什么样子。谢谢你的帮助!

4

1 回答 1

0

你目前的数据模型只能回答“student1满足哪些要求”这样的资格问题。当你做outer join时,你得到2个结果,这是正确的。Student 1已经完成了一门课程,满足他的grad要求代数 1 或代数 2。

您尝试实施的实际信用关联通常在不同的实体/表中完成。就像是...

GradReqUsed (or GradReqConsumtion, perhaps?)

CreditBucket  CourseNumber StudentID

Algebra I     100001       30003

这基本上意味着学生将有 100001 计入 Algebra1 存储桶。

于 2013-04-09T20:10:24.693 回答