Are you saying the end result is a chart that has one dimension, yearmonth and then expressions based on different date dimenstion fields?
Probably the most efficient solution would be to re-structure your data model and have the invoice table as a large fact table, with 1 date field, but I can see why that would be difficult!
Without changing the data, however this could be possible using if statements.
If you create a dummy field, standing alone in a table with yearmonth (eg with an inline) you could use this as your dimension and use if statments to match the data to it.
EG say you inline load a table with one field yearmonth with the values: 2010-01, 2010-02,.... etc
You would then use this as the dimension and enter embedded if statements, such as:
sum(if(calender1.Yearmonth = [dimension yearmonth],your expression here) )
What this will do is search through calendar1, and whereever the yearmonth matches the dummy yearmonth, it will sum the values.
Warning: this is really clunky as the table will not be linked!
This example probably has more than you need, but it demonstrates one way to create a single calendar linked to multiple dates in multiple tables. This calendar is additive, so doesn't require you to change your current data model (unless the new tables cause loops - a possibility). In some cases it might be better to more fundamentally alter the data model, but this gives an alternative.
If you have much data, a sum(if()) can end up performing poorly, which is why I would prefer a data solution. But it sounds like you have it working, and I assume it's performing fine for you, so you're probably fine. If so, the attached example is just something to consider if you encounter this sort of thing in the future.