在运动会比赛项目中,有男子组项目、女子组项目,还有混合组项目,即男女运动员共同参加比赛的项目。在分别统计男子组得分和女子组得分时,要把混合组的分数一分为二后分别加在男子组和女子组中。例如管理系男子组共得7分,女子组共得10分,混合组得5分,那么管理系男子总分应该为9.5分,管理系女子总分应该为12.5分。
请问以下代码应该如何修改才可以把混合组的分数分别加在男子组和女子组的总分中。
Dim dt
As DataTable
= DataTables("学生男子组总分")
Dim dt_source
As DataTable
= DataTables("比赛得分")
dt.DataRows.Clear
Dim dws
As List(Of String) = dt_source.GetUniqueValues("组别 = '男子组'", "单位")
For Each
dw As String In dws
Dim ndr As DataRow = dt.AddNew
ndr("单位")
= dw
ndr("总分")
= dt_source.Compute("sum(得分)", "组别
= '男子组' and 单位 = '" & dw & "'")
Next
Dim drs
As List(Of DataRow) = dt.Select("", "总分
desc")
drs(0)("名次") = 1
For i
As Integer =
1 To drs.Count - 1
If drs(i)("总分")
= drs(i-1)("总分")
Then
drs(i)("名次") = drs(i-1)("名次")
Else
drs(i)("名次") = i+1
End If
Next
Tables("学生男子组总分").Sort
= "名次"
Dim dr As DataTable
= DataTables("学生女子组总分")
Dim dr_source As DataTable
= DataTables("比赛得分")
dr.DataRows.Clear
Dim dwt As List(Of String)
= dr_source.GetUniqueValues("组别 = '女子组'",
"单位")
For Each dw As String
In dwt
Dim ndn
As DataRow = dr.AddNew
ndn("单位") = dw
ndn("总分") = dr_source.Compute("sum(得分)", "组别 = '女子组'
and 单位 = '" &
dw &
"'")
Next
Dim drt As List(Of DataRow)
= dr.Select("", "总分
desc")
drt(0)("名次") = 1
For i As Integer = 1 To drt.Count - 1
If drt(i)("总分") = drt(i-1)("总分") Then
drt(i)("名次") = drt(i-1)("名次")
Else
drt(i)("名次") = i+1
End If
Next
Tables("学生女子组总分").Sort = "名次"