【发布时间】:2021-10-16 15:10:48
【问题描述】:
目标:我想为我的简单硬币投注系统做一个总计。
- 有硬币存款的会员总数:显示进行存款交易的所有会员的数量。
- 提款的会员总数:显示进行提款交易的所有会员的数量。
- 投注总数:显示所有投注的计数
- 有硬币余额的会员总数:显示所有仍硬币余额的会员的数量。
代码:长切
MYSQL = "SELECT DISTINCT member_id"
MYSQL = MYSQL & " FROM GameActivityReport"
MYSQL = MYSQL & " WHERE CoinDeposit > 0"
Set rs = New ADODB.Recordset
Debug.Print MYSQL
rs.Open MYSQL, db, adOpenStatic, adLockReadOnly
With MainWindow
If rs.EOF Then
Else
.lblCheckerKPITotPWD.Caption = rs.RecordCount
End If
End With
rs.Close
Set rs = Nothing
MYSQL = "SELECT DISTINCT member_id"
MYSQL = MYSQL & " FROM GameActivityReport"
MYSQL = MYSQL & " WHERE CoinWithdarawal > 0"
Set rs = New ADODB.Recordset
Debug.Print MYSQL
rs.Open MYSQL, db, adOpenStatic, adLockReadOnly
With MainWindow
If rs.EOF Then
Else
.lblCheckerKPITotPWW.Caption = rs.RecordCount
End If
End With
rs.Close
Set rs = Nothing
MYSQL = "SELECT COUNT(*) AS NewCoinDropCount"
MYSQL = MYSQL & " FROM GameActivityReport"
MYSQL = MYSQL & " WHERE CoinDrop > 0"
Set rs = New ADODB.Recordset
Debug.Print MYSQL
rs.Open MYSQL, db, adOpenStatic, adLockReadOnly
With MainWindow
If rs.EOF Then
Else
.lblCheckerKPITotPWB.Caption = rs.Fields("NewCoinDropCount")
End If
End With
rs.Close
Set rs = Nothing
MYSQL = "SELECT DISTINCT member_id"
MYSQL = MYSQL & " FROM GameActivityReport"
MYSQL = MYSQL & " WHERE CoindBalance > 0"
Set rs = New ADODB.Recordset
Debug.Print MYSQL
rs.Open MYSQL, db, adOpenStatic, adLockReadOnly
With MainWindow
If rs.EOF Then
Else
.lblCheckerKPITotEC.Caption = rs.RecordCount
End If
End With
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
问题:我怎样才能缩短我上面的代码。
【问题讨论】:
-
也许您可以将所有查询合并到一个联合查询中。当然,您需要在该列中为您的查询添加一列和标记名称,以区分查询。只是一个想法。
-
Stack 有一个姊妹网站来解决这类问题,你可能会在那里得到更好的回应:codereview.stackexchange.com
-
这些字段名称是否正确
CoinWithdarawal和CoindBalance? -
这将更适合codegolf.stackexchange.com,但在其当前状态下不可以在那里发布。如果您包括到目前为止所做的以缩短代码以及您要完成的实际任务的详细信息,那么它可能是主题