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 месяцев.Создание ежемесячной общей суммы за последние 12 месяцев
То, как я это делаю, будет состоять в том, чтобы прокрутить назад значение CurrentMonth, и если значение CurrentMonth достигнет 0, сверните значение CurrentYear назад 1. Используя переменную цикла (i), чтобы создать массив из 12 значений : MTotal()
Что вы, ребята, думаете?
Как указано, вы не используете и, следовательно, не нужно выбирать InvMonth и InvYear, так как вы знаете значение из входных данных. Вы также должны получить СУБД для выполнения SUM (потрачено), поэтому вы получите одну строку за данный месяц. –
(Вы можете оставить InvMonth и InvYear для целей отладки, но если вы это сделаете, вам понадобится ГРУППА BY при добавлении СУММЫ). –