Hi Agnes –
ideally you would have all invoices in a single table. Lacking that, use the Virtual List method, or ExecuteSQL.
Have a look into the attached sample file. You see one example for a chart in a combined table (first layout), and in the last layout an example for a chart using ExecuteSQL. As the name of the table/layout implies, you can use ExecuteSQL() from any context
To change the year for the first chart, change the found set (i.e. find records for another year) to be summarized.
For the other chart, change the year in the global that is used in the calculation.
I hope this gives you some ideas.