以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求高效代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41398)

--  作者:jsq96jg
--  发布时间:2013/10/18 14:46:00
--  求高效代码

以下为一段求12个月逐月平均人数之和的代码,测试中统计500人需要3秒,请问有没有高效的写法呢?


Dim ts As Integer \'当月天数
Dim kssj As Date=#01/01/2013#
Dim monavg As Double \' 月平均人数
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 \'"& dwdm &"%\' 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


--  作者:jsq96jg
--  发布时间:2013/10/18 14:50:00
--  

月平均人数,为当月每天在职人数和/天数


--  作者:jsq96jg
--  发布时间:2013/10/18 14:51:00
--  

还差一个变量:dim rs as integer \'人数


--  作者:Bin
--  发布时间:2013/10/18 14:58:00
--  
上例子,描述清楚需求!    否则,这种情况很难帮上忙哦!
--  作者:jsq96jg
--  发布时间:2013/10/18 15:08:00
--  

这段代码效率太低,想请教有没有更高效的写法。


--  作者:jsq96jg
--  发布时间:2013/10/18 15:09:00
--  

逐天累计职工人数,每个月算一次平均人数,求12个月的平均人数之和


--  作者:jsq96jg
--  发布时间:2013/10/18 15:14:00
--  

狐爸帮助里说,把查询和赋值分开,我也不知道该怎么分了,貌似也分不开

 


--  作者:lsy
--  发布时间:2013/10/18 15:18:00
--  

人家帮你改代码,也是需要测试的,你不上例子,哪来数据测试?


--  作者:有点甜
--  发布时间:2013/10/18 20:13:00
--  
 首先,说清楚问题,然后,上传一个例子。

 不然自己做,思路都是一样的,遍历所有的行,自己实现compute的功能,这样会快。