Last week I wrote about how the Above() function can be used for calculating rolling averages and other accumulations. There is however also an alternative method for doing the same thing:
The As-Of table.
When you use the Above() function, you fetch a number from other rows in a chart or Aggr() table. The As-Of table is slightly different in this respect: It is not a transient table created by an object or an expression – instead it is a real table in the data model.
The idea is to create a secondary month field – the AsOfMonth - that links to multiple real months.
In the example above, you can see that ‘2015 Oct’ links to several preceding months, and each Month in turn links to several rows in a fact table. This means that a specific transaction will be linked to several AsOfMonths.
In the data model, the As-Of table should appear as a separate calendar table that links to the existing primary calendar table:
One way to create this table is the following:
First, make sure that you in your master calendar have a field “Month” that is defined as the first date of the month, e.g.
Date(MonthStart(Date),'YYYY MMM') asMonth,
Then add the following lines at the end of the script:
// ======== Create a list of distinct Months ======== tmpAsOfCalendar: LoaddistinctMonth Resident [Master Calendar] ;
I have made the Set Analysis expressions based on two fields: YearDiff and MonthDiff. However, for clarity it could be a good idea to add flags in the As-Of table, so that the Set Analysis expressions become even simpler, e.g.
No, this is the way it should be. Just swap position of the two list boxes and you will get what you want.
Look at it this way: A specific transaction belongs to a specific Month (in the standard calendar). This transaction should be included in the rolling-6 calculation not just this month, but also 5 months ahead in time. Hence, the month 'Nov 2015' should be linked to As-Of Months in the future.
The 'AsOf Month' can then be used in a chart for the rolling-6 calculation and will then link backward in time to older transactions.
Thank you so much I was struggling with the below senario
In June the top two profitted cuntries are Argentina and Japan
In May the top two profitted cuntries are America and Argentina
What i want is when i click on jun i want both june and may data to dispaly and the comparision should be between the selected month (jun) and top two values of it Argentina and Japan to Argentina and Japanin May
my week4rolloing is not working as expected when i selct the value 1, in the flag is not showing the last 4 four weeks, when i selct the week with respect to Asofweek