有一個資料庫,資源數量24萬條。
客戶資源表1存盤內容基本是:名字,電話,添加人,添加時間
用戶資訊表2存著30個用戶資訊,
每天不定時統計每個用戶有多少個客戶。
目前的方法:
strquery = "select name from o_user order by id asc"
set rs = conn.execute(strquery)
if not rs.bof then
do while not rs.eof
%>
用戶:<%=rs("name")%>客戶數:<%=call get rs("name")%> <br>
<%
rs.movenext
loop
%>
統計用戶名下的客戶數代碼如下:因為每天是8點上班,所以統計的是07:00:00后的資料,d 是當天的日期,例如:2020-10-11
<%
Sub getnum(user,d)
Dim objRSa
Set objRSa=Conn.Execute("SELECT COUNT(id) FROM o_connection WHERE addtime > '"&d&" 07:00:00' and adduser='"&trim(user)&"'")
If (Not objRSa.bof) And (Not objRSa.eof) Then
CommNums=objRSa(0)
End If
Set objRSa=Nothing
Response.Write CommNums
End Sub
%>
以上方式可以正常運行,也可統計出準確的資料,但是執行很慢,每次重繪至少得30-40秒才有結果,請問有效率高的辦法嗎?
uj5u.com熱心網友回復:
Set objRSa=Conn.Execute("SELECT adduser, COUNT(id) FROM o_connection WHERE addtime > '"&d&" 07:00:00' group by adduser")While Not objRSa.Eof
Response.Write "用戶:"& objRSa(0) &"客戶數:"& objRSa(1) &"<br>"
objRSa.MoveNext
Wend
uj5u.com熱心網友回復:
剛剛測驗了,你這種方法效率很高,速度很快,但是帶來一個問題,如果有用戶的客戶數為0,則列不出來。
uj5u.com熱心網友回復:
Set Dic = Server.CreateObject("Scripting.Dictionary")Set objRSa=Conn.Execute("SELECT adduser, COUNT(id) FROM o_connection WHERE addtime > '"&d&" 07:00:00' group by adduser")
While Not objRSa.Eof
Dic.add objRSa(0),1
Response.Write "用戶:"& objRSa(0) &"客戶數:"& objRSa(1) &"<br>"
objRSa.MoveNext
Wend
strquery = "select name from o_user order by id asc"
set rs = conn.execute(strquery)
if not rs.bof then
While Not Rs.Eof
if not Dic.exists(rs("name")) then
Response.Write "用戶:"& rs("name") &"客戶數:0<br>"
end if
Rs.MoveNext
Wend
end if
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/185212.html
標籤:ASP
下一篇:彈窗代碼問題求助
