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
Dies ist der Code, den ich derzeit für einen gegebenen Monat ausgeben muss. Ich möchte dies erweitern, um die Summen pro Monat für die letzten 12 Monate abzurufen. Die Art, wie ich das sehe, wäre, den CurrentMonth-Wert rückwärts zu durchlaufen, und wenn CurrentMonth den Wert 0 erreicht, den Wert von CurrentYear zurückrollen 1. Mit der Loop-Variable (i) ein Array von 12 Werten aufbauen : MTotal()Aufbau einer monatlichen Gesamtsumme aus den letzten 12 Monaten
Was denkst du?
Wie beschrieben, verwenden Sie nicht und müssen daher InvMonth und InvYear nicht auswählen, da Sie den Wert aus den Eingabedaten kennen. Sie sollten das DBMS auch dazu bringen, SUM (verbraucht) zu verwenden, sodass Sie für den angegebenen Monat eine Zeile erhalten. –
(Sie können InvMonth und InvYear für Debugging-Zwecke aufbewahren, aber wenn Sie das tun, müssen Sie sie GRUPPIEREN, wenn Sie den SUM hinzufügen). –