устранить дублирование на основе минимальной даты - PullRequest
0 голосов
/ 05 декабря 2018

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