När jag loopar ut mina forums inlägg så vill jag ha med hur många inlägg och hur många som skrivits idag. Nu undrar jag om man kan slippa att sätta så många RecSet.
Nuvarande kod:
Set Rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")
Do until Rs.eof
Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"'")
Set rsCount = Connect.Execute("SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
Set Rs = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forum ORDER BY diskusrubrik")
response.write rs("TotalPosts")
response.write rs("TodayPosts")
Set rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")
Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forum ORDER BY diskusrubrik"))
response.write rsInfo("TotalPosts")
response.write rsInfo("TodayPosts")
Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forumpost WHERE diskusid='"& Rs("diskusid") &"' AND svarid=0 ORDER BY datum2 DESC LIMIT 5"))
Set Rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")
Do until Rs.eof
Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forumpost WHERE diskusid='"& Rs("diskusid") &"' AND svarid=0 ORDER BY datum2 DESC LIMIT 5")
Så det går alltså inte att få ihop dessa två Rs i samma?
Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"'")
Set rsCount = Connect.Execute("SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
Jo, de borde gå att få ihop genom att använda UNION.
Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal, 'Totalt' As Något FROM forumpost Where diskusid = '"& Rs("diskusid") &"' UNION SELECT count(postid), 'Postantal' FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
Du borde få ett recordset som ser ut så här:
Antal Något
------------------------
123 Totalt
99 Postantal