2015-03-02 4 views
0

У меня есть таблица записей обучения сотрудников, в которых показаны курсы (записано как «Готово») и включены курсы. Часто сотрудники снова зачисляются на курс, который они «закончили» несколько лет назад. Таким образом, существуют две строки: одна для «Готово» и одна для «Зарегистрировано».Устранение нежелательных строк в SQL Server 2008 R2

В случае возникновения этих сценариев я хочу показать строку «Зарегистрированный».

Данные структурированы следующим образом:

enter image description here

Если это поможет - в Course_Start_Date для Finished курсы всегда старше Enrolled даты начала.

Любые идеи о том, как я могу удалить эти строки, когда они происходят, пожалуйста?

ответ

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

Смежные вопросы