【发布时间】:2010-10-11 18:37:01
【问题描述】:
CurrentMonth = Month(CurrentDate)
CurrentYear = Year(CurrentDate)
SQL = "SELECT Spent, MONTH(Date) AS InvMonth, YEAR(Date) As InvYear FROM Invoices WHERE YEAR(Date) = '" & CurrentYear & "' AND MONTH(Date) = '" & CurrentMonth & "'"
RecordSet.Open SQL, Connection, adOpenStatic, adLockOptimistic, adCmdText
Do Until RecordSet.EOF
MTotal(i) = MTotal(i) + RecordSet.Fields("Spent")
RecordSet.MoveNext
Loop
RecordSet.Close
这是我目前必须建立一个给定月份的总支出的代码。 我希望扩展它以检索过去 12 个月的每月总数。
我看到这样做的方法是向后循环 CurrentMonth 值,如果 CurrentMonth 值达到 0,则将 CurrentYear 的值回滚 1。使用循环变量 (i) 构建一个包含 12 个值的数组: MTotal()
你们觉得呢?
【问题讨论】:
-
正如所写,您不使用因此不需要选择 InvMonth 和 InvYear,因为您知道输入数据的值。您还应该让 DBMS 进行 SUM(Spent),因此您最终会得到给定月份的一行。
-
(您可能会保留 InvMonth 和 InvYear 以进行调试,但如果这样做,则需要在添加 SUM 时对它们进行 GROUP BY)。
标签: sql database datetime vb6 date