基本上,我有一個表格結構,學生可以參加考試。選擇其中一個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