2015-03-02 50 views
0

我有一張員工培訓記錄表,顯示出席的課程(記錄爲「完成」)和註冊的課程。通常,員工將再次參加他們'完成'多年前的課程。因此存在兩行 - 一個用於完成,另一個用於已註冊。消除SQL Server 2008 R2中不需要的行

發生這些情況時 - 我只想顯示「已註冊」行。該Course_Start_DateFinished課程總是早於Enrolled開始日期 - 如果它有助於

enter image description here

的數據結構是這樣的。

關於如何在發生這些行時刪除這些行的任何想法?

回答

1

您可以使用NOT EXISTS來排除同一人目前在同一課程中註冊的課程。

SELECT En, Last_Name, FirstName, Course, Course_start_Date, Enrollment_Status 
FROM T 
WHERE Enrollment_Status = 'Enrolled' 
OR  NOT EXISTS 
     ( SELECT 1 
      FROM T AS T2 
      WHERE T2.En = T.En 
      AND  T2.Course = T.Course 
      AND  T2.Enrollment_Status = 'Enrolled' 
     ); 
+0

OMG - 那很完美。非常感謝。謝謝你的回覆。 – ttratl 2015-03-02 11:24:42