如何在许多表的mssql中使用distinct?

时间:2012-07-28 20:36:34

标签: sql duplicates distinct records

使用下面的SQL语句,我会根据需要获得有关学生的所有信息,除了一个问题是重复记录,而实际上每个学生只需要最后输入的记录。

Student ID      Year level   Semester
20012-000001    20012-20013    1
20012-000001    20012-20013    2
20012-000001    20012-20013    3    
20012-000001    20012-20013    4        
20012-000001    20012-20013    5
    sqlSTR = "SELECT tblStudent.StudentID AS '??? ??????' , (tblStudent.FirstName + ' ' + tblStudent.MiddleName + ' ' + tblStudent.GrandFatherName + ' ' + tblStudent.LastName) as '?????' ," & _
                "tblStudent.Gender as '?????', tblStudent.Citizenship as '???????', tblStudent.Type as '??? ?????'," & _
                "tblDepartment.DepartmentTitle as '?????', tblEnrolment.SchoolYear as '????? ????????',tblYearLevel.YearLevelTitle as '????? ???????',  " & _
                "'????'= CASE WHEN Len(tblGraduate.StudentID)<>12 THEN '???' ELSE ''End , " & _
                "'???? ???'= CASE WHEN Len(tblDropped.StudentID)<>12 THEN '???' ELSE ''End , " & _
                "'??????'= CASE WHEN tblStudent.Transferee ='True' THEN '???' ELSE ''End" & _
                " FROM tblDropped RIGHT JOIN " & _
                "(tblGraduate RIGHT JOIN " & _
                "(tblDepartment RIGHT JOIN " & _
                "(tblYearLevel RIGHT JOIN " & _
                "(tblSection RIGHT JOIN " & _
                "(tblStudent LEFT JOIN tblEnrolment " & _
                "ON tblStudent.StudentID = tblEnrolment.StudentID) " & _
                "ON tblSection.SectionID = tblEnrolment.SectionOfferingID) " & _
                "ON tblYearLevel.YearLevelID = tblEnrolment.YearLevelID) " & _
                "ON tblDepartment.DepartmentID = tblSection.DepartmentID) " & _
                "ON tblGraduate.StudentID = tblStudent.StudentID) " & _
                "ON tblDropped.StudentID = tblStudent.StudentID" & _
                " " & sFilter & _
                " ORDER BY tblStudent.StudentID DESC , tblYearLevel.YearLevelTitle ASC"

1 个答案:

答案 0 :(得分:0)

在表格中添加一个日期字段,其中包含最近的记录和过滤条件。如果表已经有一个按日期包含WHERE子句?

如果我正确理解你的表,最后一个记录总是在最后一个学期,如果你知道这个学期只是为Student_ID做一个UNIQUE关键字