根据最小日期消除重复

时间:2018-12-05 04:22:58

标签: sql-server date datetime

根据最早的开始日期来消除重复,我正在使用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

0 个答案:

没有答案
相关问题