현재 SQL Server 2008을 사용하고 있습니다. 같은 코스에 등록한 학생이있는 레코드가 여러 개 있지만 일부 레코드의 시작 날짜가 같습니다 종료 날짜의 널값 또는 실제 날짜. 같은 학생의 시작 날짜가 같으면 Null 값으로 레코드를 가져 오려고합니다. 시스템의 데이터에는 시작 날짜와 종료 날짜가있는 레코드도 포함되어 있지만 이러한 레코드를 유지하려고합니다. 아래 쿼리를 시도했지만 결과를 돌려주지 않습니다. 이것을 달성 할 수있는 방법이 있습니까? 어떤 도움을 주시면 감사하겠습니다. DATASQL : 다른 레코드의 시작 날짜가 동일한 경우 종료 날짜에 null 값이있는 데이터 선택
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
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
는
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
의역하려면; 실제적인 (NOT NULL') * enddate가있는 일치하는 레코드 * (학생, 프로그램 및 시작일) *가있는 경우에만 'NULL'종료일이있는 레코드를 삭제 하시겠습니까? – MatBailie