Originally posted by kyodai
Ah thanks, you're the best. I guess the "5 top posters of today" would be more complicated? Or could i just add like "FROM POSTS WHERE POSTS.POSTDATE = TODAY" ? well or similar to that. Oh and thanks a lot again! Really made my day. :)
'## Forum_SQL to grab top 5 posters
strSql = "SELECT TOP 5 M_NAME,M_POSTS FROM FORUM_MEMBERS ORDER BY M_POSTS DESC;"
Set rstop = Server.CreateObject("ADODB.Recordset")
rstop.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText
if rstop.EOF then
'top5user not available
else
top5user1 = rstop.GetRows(0)
top5user2 = rstop.GetRows(1)
top5user3 = rstop.GetRows(2)
top5user4 = rstop.GetRows(3)
top5user5 = rstop.GetRows(4)
response.write "<br>Top 5 Posters: " & top5user1 & "," & top5user2 & "," & top5user3 & "," & top5user4 & "," & top5user5 & "."
end if
rstop.close
set rstop = nothing
Code:strSql="SELECT TOP 5 M_POSTS, M_NAME FROM " & strMemberTablePrefix & "MEMBERS ORDER BY M_POSTS DESC"
set rsTop5=my_Conn.Execute(strSql)
Response.Write "Top 5 Posters: "
if not rsTop5.EOF then
xx=0
rsTop5.MoveFirst
do until rsTop5.EOF
Response.Write rsTop5("M_NAME")
xx=xx+1
if xx<5 then
Response.Write ", "
else
Response.Write "."
end if
rsTop5.MoveNext
Loop
rsTop5.Close
end if
set rsTop5=Nothing
strSql="SELECT TOP 5 M_NAME, (SELECT COUNT(1) AS Count1 FROM FORUM_TOPICS T WHERE T.T_AUTHOR = M_NAME AND T.T_STATUS = 1 AND T.T_DATE > '" & DateToStr(Now-1) & "') AS Topic_Count, (SELECT COUNT(1) AS Count2 FROM FORUM_REPLY R WHERE R.R_AUTHOR = M_NAME AND R.R_STATUS = 1 AND R.R_DATE > '" & DateToStr(Now-1) & "') AS Reply_Count FROM FORUM_MEMBERS ORDER BY Topic_Count DESC"
set rsTop5=my_Conn.Execute(strSql)
Response.Write "<br>Today's most active Members: "
if not rsTop5.EOF then
xx=0
rsTop5.MoveFirst
do until rsTop5.EOF
Response.Write rsTop5("M_NAME")
xx=xx+1
if xx<5 then
Response.Write ", "
else
Response.Write "."
end if
rsTop5.MoveNext
Loop
rsTop5.Close
end if
set rsTop5=Nothing