以下是我的代码,不知道还有没有更简洁高效的办法,实际应用统计时,再加上其他条件,再放到循环体里,统计一张表需要100秒了
Dim ts As Integer '当月天数
Dim kssj As Date=#01/01/2013#
Dim monavg As Double ' 月平均人数
Dim ST As Date=Date.NOW
Dim RS As Integer
For m As Integer=0 To 11 '月
ts= ts+Date.daysinmonth(kssj.year, kssj.month)
For t As Integer=1 To Date.daysinmonth(kssj.year,kssj.month) '从开始时间起逐天计算
rs=rs+DataTables("zzjbqk").compute("count(姓名)","[工资类型] like '机关%' And [单位代码] Like 'SZ0306' and [调入时间]<#"& kssj &"#") '逐天累加人数至全月
kssj = kssj.adddays(1)
Next
monavg=monavg+rs/ts'逐月平均人数和
ts=0
If kssj>#12/21/2013# Then '如果开始时间>截止时间
Exit For
End If
rs=0
Next
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")