根据最早的开始日期来消除重复,我正在使用SQL-server 2008,并且正在研究查看学生资料的查询。有些注册具有相同的程序开始日期,程序名称,不同的设施开始日期,相同的结束日期或不同的结束日期值。如果一条记录具有相同的位置和admitadmindate(程序开始日期),则查询应将设施开始日期的最小日期(
)带给我该记录。我在下面进行查询,但这只是消除了没有空值作为结束日期的记录上的重复。有没有更好的方法来解决这个问题?任何建议或帮助都将受到高度赞赏。
IF OBJECT_ID('tempdb..#HighIONsEnrollments') IS NOT NULL BEGIN DROP TABLE #HighIONsEnrollments END
SELECT StudentID, last_name, First_Name, programName, LOCATION, admitadmindate,
facility_EnrollmentDATE,Facility_EnrollEndDATE, Section
into #HighIONsEnrollments_DupsEliminated
FROM #HighIONsEnrollments
WHERE Facility_EnrollEndDATE IS NULL
UNION ALL
SELECT t1.StudentID, t1.last_name, t1.First_Name, t1.programName, t1.LOCATION, t1.admitadmindate,
t1.facility_EnrollmentDATE,t1.Facility_EnrollEndDATE, t1.Section
FROM #HighIONsEnrollments t1
INNER JOIN
(
SELECT StudentID, location,admitadmindate, MIN(facility_EnrollmentDATE) AS minEndDate
FROM #HighIONsEnrollments
GROUP BY StudentID, location,admitadmindate,
HAVING SUM(CASE WHEN Facility_EndDAte IS NULL THEN 1 ELSE 0 END) = 0
) t2
ON t1.StudentID = t2.StudentID AND
t1.location = t2.location AND
t1.admitadmindate = t2.admitadmindate AND
t1.facility_EnrollmentDATE = t2.minEndDate
ORDER BY
StudentID, location
StudentID program Location AdmitAdminDate Facility_startdate facility_Enddate
909781 Math Astro 23 09/19/2015 09/27/2015 11/28/2015
909781 Math Astro 23 09/19/2015 09/13/2015 11/28/2015
564229 Bio Tedro 12 01/13/2017 02/02/2017 NULL
564229 Bio Tedro 12 01/13/2017 02/01/2017 NULL
784023 Chem WoodPeck 03/14/2014 05/10/2014 Null
784023 Chem WoodStrt 03/14/2014 05/10/2014 Null
Results
StudentID program Location AdmitAdminDate Facility_startdate facility_Enddate
909781 Math Astro 23 09/19/2015 09/13/2015 11/28/2015
564229 Bio Tedro 12 01/13/2017 02/01/2017 NULL
784023 Chem WoodPeck 03/14/2014 05/10/2014 Null
784023 Chem WoodStrt 03/14/2014 05/10/2014 Null
Query Results at the moment
StudentID program Location AdmitAdminDate Facility_startdate facility_Enddate
909781 Math Astro 23 09/19/2015 09/13/2015 11/28/2015
564229 Bio Tedro 12 01/13/2017 02/02/2017 NULL
564229 Bio Tedro 12 01/13/2017 02/01/2017 NULL
784023 Chem WoodPeck 03/14/2014 05/10/2014 Null
784023 Chem WoodStrt 03/14/2014 05/10/2014 Null