我目前正在使用SQL Server 2008.我有多個記錄讓學生在同一課程中註冊,但一些記錄具有相同的開始日期和空值或結束日期的實際日期。如果開始日期對於同一個學生是相同的,我試圖獲得帶有空值的記錄。系統中的數據還包含有開始日期和結束日期的記錄,但我打算保留這些記錄。我已經嘗試了下面的查詢,但它沒有給我回任何結果。有沒有辦法做到這一點?任何幫助,將不勝感激。SQL:如果其他記錄具有相同的開始日期,則選擇結束日期爲空值的數據
SELECT DISTINCT
t1.*
FROM Enrolled_students t1
JOIN Enrolled_students t2
ON t1.studentid = t2.studentid
AND t1.program_enrolled = t2.program_enrolled
AND t1.startdate = t2.stardate
AND t1.enddate <> t2.enddate
DATA
StudentID program StartDate enddate_Date
267342 Science 2016-09-19 00:00:00.000 NULL
267342 science 2016-09-19 00:00:00.000 2017-01-17 00:00:00.000
435359 math 2017-05-18 00:00:00.000 2017-08-29 00:00:00.000
290332 Lab 2014-02-11 00:00:00.000 NULL
成績
StudentID program startDate end_Date
267342 Science 2016-09-19 00:00:00.000 NULL
435359 math 2017-05-18 00:00:00.000 2017-08-29 00:00:00.000
290332 Lab 2014-02-11 00:00:00.000 NULL
套用;你想刪除帶有'NULL'結束日期的任何記錄,但是隻有當具有實際的*('NOT NULL')*結束日期的匹配記錄*(相同的學生,程序和startdate)*時纔會刪除。 – MatBailie