换一种思路,如果从排名上把排名序号,进行比较,写出排名序号,行不行,代码如下:请修改:'获得所有班级名称,保存在集合中
Dim bjs As List(Of String) = Tables("面试成绩_笔试").DataTable.GetUniqueValues("","职位代码")
For Each bj As String In bjs
'获得该班级的全部行,按总分降序排序
Dim drs As List(Of DataRow) = Tables("面试成绩_笔试").DataTable.Select("[职位代码] = " & bj, "总成绩 DESC")
Dim brs As List(Of DataRow) = Tables("面试成绩_笔试").DataTable.Select("[职位代码] = " & bj, "笔试成绩 DESC")
Dim xrs As List(Of DataRow) = Tables("面试成绩_笔试").DataTable.Select("[职位代码] = " & bj, "行测成绩 DESC")
For n As Integer = 0 To drs.Count - 1 '遍历所有行
If n > 0 AndAlso drs(n)("总成绩") = drs(n-1)("总成绩") Then '如果总分和上一行相同
If n > 0 AndAlso brs(n)("总成绩") = brs(n-1)("笔试成绩")
If n > 0 AndAlso xrs(n)("总成绩") = xrs(n-1)("行测成绩")
drs(n)("面试排名") = drs(n-1)("面试排名") '则排名等于上一行
Else
drs(n)("面试排名") = n + 1 '设置排名
End If
Next
Next