Hi,
You can simply achieve your requirement with my blog. Create a interval variable(user entry) with calmonth and restrict to a dummy KF(should be hidden).
Restrict your Sales KF with a new variable which is replaced by user entry variable with FROM Value Eg: If user enters 04.2012 to 12.2013 then 04.2012 will be considered in the replacement path and apply an offset -11 with a range.
Ideally your restriction should be New variable-11 - New variable
Keep Calmonth in rows pane of the query. So whatever range user enters the data will fetch last 12 months data for each month in rows as desired.
How to derive Calmonth & Calyear from Calday easily
Regards,
Suman