请教个统计的小问题,谢谢各位。
ASP+ACCESS2000
作业表
序号 作业生成时间 生产部门 作业结束时间 完成部门 完成时间
1 2012-09-09 车间1|车间2 2012-10-09 车间1|车间2 2012-10-08
2 2012-09-09 车间2|车间3 2012-10-09 车间2 2012-10-08
3 2012-09-09 车间1 2012-10-09 车间1 2012-10-08
4 2012-09-09 车间2 2012-10-09 车间2 2012-10-08
。。。
要求按完成时间内(如10月)统计各部门完成的工单数量,统计结果如下:
生产部门 作业完成数 作业未完成数量 作业合计
车间1 2 2
车间2 3 3
车间3 1 1
合计 5 1 6
谢谢各位高手。
[解决办法]
#4楼我已经说过了,按照那样设计就方便多了,直接3个sql语句统计,不需要遍历
下面是遍历的
set rs=server.CreateObject("adodb.recordset")set dit=Server.CreateObject ("Scripting.Dictionary")rs.Open "select * from [工作表]",conn,1,1while not rs.EOF dept=rs("生产部门") arrdept=split(dept,"|") fdept="|"&rs("完成部门")&"|" for i=0 to ubound(arrdept) if isempty(dit(arrdept(i))) then arr=array(0,0,0)'键值为数组,第一项完成的,第二项未完成,第三项作业数 else arr=dit(arrdept(i)) end if arr(2)=arr(2)+1'作业数+1 if instr(fdept,"|"&arrdept(i)&"|")=0 then'未包含在完成部门 arr(1)=arr(1)+1 else arr(0)=arr(0)+1 end if dit(arrdept(i))=arr next rs.MoveNextwendrs.Close:set rs=nothing:conn.Close:set conn=nothingkeys=dit.Keysresponse.Write "<table><tr><td>部门</td><td>作业完成数</td><td>作业未完成数量</td><td>作业合计</td></tr>"for i=0 to ubound(keys)arr=dit(keys(i))response.Write "<tr><td>"&keys(i)&"</td><td>"&arr(0)&"</td><td>"&arr(1)&"</td><td>"&arr(2)&"</td></tr>"nextresponse.Write "</table>"