ログインする各ユーザーのUserIdとLoginDateを格納するSQLログインテーブル「tblLogins」があります。毎日のログイン数を示すグラフを生成する必要があります。そこで、[CLASSIC ASP] の下でこのスクリプトを使用します。
毎日ループしてデータベースにクエリを実行せずにこの情報を取得する方法はありますか? ご覧のとおり、30 個のクエリで DB にアクセスしています。期待される出力フォーマットは次のとおりです。
[[1, 26], [2, 16], [3, 16], [4, 26], [5, 0], [6, 0], [7, 25], [8, 21], [ 9、90]、[10、12]、[11、11]、[12、21]、[13、0]、[14、18]、[15、17]、[16、21]、[17、 23]、[18、19]、[19、0]、[20、0]、[21、12]、[22、17]、[23、12]、[24、7]、[25、11] 、[26、21]、[27、0]、[28、18]、[29、20]、[30、0]]
これは [月の日、ログイン] です。SQL Server で COALESCE を見ていましたが、それが可能かどうかわからず、使用法もよくわかりません。
コード:
i=1
varStartDate = DateAdd("m",-1, Date)
for i = 1 to DayCount
intUserTotal = 0
strSQL= "Select IsNull(Count(DISTINCT(userid)),0) as Logins from tblLogins where LoginDate >= '"& varStartDate &"' and LoginDate <= '"& DateAdd("d", 1, varStartDate) &"'
rsTemp.Open strSQL,objConn,3,2
if not rsTemp.EOF then
if not isnull(rsTemp("Logins")) and trim(rsTemp("Logins")) <> "" then
intUserTotal = trim(rsTemp("Logins"))
else
intUserTotal = 0
end if
else
intUserTotal = 0
end if
rsTemp.close
'' append in JSON FORMAT
strData1= strData1 & "[" & i & ", " & cInt(intUserTotal) & "], "
''' increment the date
varStartDate = DateAdd("d",1, varStartDate)
'' start with next date
next
編集:一部の日にログインがない場合があるため、結果はその月の結果で 0 を報告する必要があります。@alzaimar は近いですが、まだいくつかの問題があります。