2013-04-11 57 views
0

我正在努力爲持續和/或畢業的學生提供六年期間的完整學生記錄。我做了以下,但不知道我是否得到正確的學生記錄。繼續和/或畢業的學生的學生記錄

SELECT * 
FROM FileYear2006 
INNER JOIN GraduationFile1 
ON FileYear2006.STUDENTID = GraduationFile1.STUDENTID 

我相信上面的查詢只給我畢業的學生,​​但我不知道繼續的學生。

我有FileYear200-2012,我有三個2009-2010的GraduationFile1,2010-2011的GraduationFile2和2011-2012的GraduationFile3。

續指學生在2006年開始,例如,退學了,在2008年

+0

嘗試使用左連接並查找空列。 – highwingers 2013-04-11 03:53:30

+0

不符合標準:實際的畢業/繼續活動是否需要在六年期間進行,或者他們在這段時間內只需要成爲學生,但他們可以隨時畢業,包括有問題的時期? – 2013-04-11 03:55:53

+0

此外,具有年/月後綴的表格和列幾乎總是一個可怕的糟糕的設計選擇。在這種情況下,年份應該是一個專欄,如果您擔心規模/表現,則會將年份設置爲表中聚集索引中的第一個字段。 – 2013-04-11 03:57:17

回答

0

回來,你可能有一些狀態欄這使無論是通過/丟棄/重新加入/失敗的跟蹤學生/繼續等你可能設置一些代碼爲他們喜歡列名稱將是Student_Status並且它可以具有像下面映射

傳遞= 0的值,失敗= 1,下降= 2,再結合= 3,繼續= 4

則可以在上面的查詢中加入上面的查詢後使用你的上面的查詢和對Student_Status的檢查,它會給你所需學生的確切結果。

SELECT * 
FROM FileYear2006 
INNER JOIN GraduationFile1 ON FileYear2006.STUDENTID = GraduationFile1.STUDENTID 
WHERE Student_Status = 4 
+0

是內部加入你認爲這種情況的正確加入嗎? – user2134610 2013-04-11 05:17:29

+0

是的,因爲它會根據您指定的student_status值爲您提供所需的結果 – 2013-04-14 06:26:03