Устранение дублирования на основе самой ранней даты начала, я использую SQL-сервер 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