基本上,我有一个表格结构,学生可以参加考试。选择其中一个ID不在另一个表中
结构是这样的:
http://www.dropmocks.com/mBj9YX
SELECT s.name AS studentName,
t.name AS testName,
MAX(sc.percentile)
AS percentile,
(CASE WHEN MAX(sc.percentile) > 70 THEN 'passed'
WHEN MAX(sc.percentile) <70 THEN 'fail'
WHEN MAX(sc.percentile) IS NULL THEN 'not taken' END) AS status
FROM Score sc
并不想得到我想要的部分是在这里:
WHEN MAX(sc.percentile) IS NULL THEN 'not taken' END
如果学生不参加考试时,测试ID将不在分数表中。如果他们没有参加测试,我无法弄清楚会在状态栏中添加“未采用”的查询。帮帮我?前两项工作,但如果测试表中存在测试ID并且学生未参加该测试,则该学生的测试ID将不会显示在评分表中。我试图找到一种方法来检测。
你真的想要什么? – evilone 2012-07-24 17:46:54
一种检测学生未采取的测试的方法。 – user1319343 2012-07-24 17:48:42
然后你不直接从表中选择分数。相反,做一些类似于从学生S加入测试T ...左加入SCORE SC ... WHERE SC.PrimaryKey IS NULL(或者,在您的CASE语句中放置SC.PrimaryKey IS NULL – Set 2012-07-24 17:52:56