Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
i want to create a master calendar that isn't linked to any orderdate or any other table
Let me explain it a bit better as i have been quite ambiguous...
Data sample
name | datefrom | dateto | duration |
john | 21/12/2015 | 24/12/2015 | 4 |
john | 27/01/2016 | 27/01/2016 | 1 |
john | 12/02/2016 | 15/02/2016 | 2 |
john | 26/02/2016 | 26/02/2016 | 1 |
john | 10/03/2016 | 10/03/2016 | 0.5 |
john | 01/04/2016 | 01/04/2016 | 1 |
john | 18/04/2016 | 18/04/2016 | 0.5 |
john | 29/04/2016 | 29/04/2016 | 1 |
john | 02/09/2016 | 09/09/2016 | 6 |
Current (pivot table) output:
Current pivot table dimensions:
name
tempdate
Current pivot table expression:
IF(tempdate >= datefrom AND tempdate <= dateto, 1, 0 )
Expected output (shortened) i would like ALL dates shown not just the populated ones:
name | tempdate | 19/12/2015 | 20/12/2015 | 21/12/2015 | 22/12/2015 | 23/12/2015 | 24/12/2015 | 25/12/2015 | 26/12/2015 | 27/12/2015 | 28/12/2015 | 29/12/2015 | 30/12/2015 | 31/12/2015 |
john | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ALSO tempdate comes from the master calendar example on here....
QuartersMap:
MAPPING LOAD
rowno() as Month,
'Q' & Ceil (rowno()/3) as Quarter
AUTOGENERATE (12);
Temp:
Load
min(datefrom) as minDate,
max(dateto) as maxDate
Resident newtable;
Let varMinDate = Num(Peek('minDate', 0, 'Temp'));
Let varMaxDate = Num(Peek('maxDate', 0, 'Temp'));
DROP Table Temp;
TempCalendar:
LOAD
$(varMinDate) + Iterno()-1 As Num,
Date($(varMinDate) + IterNo() - 1) as TempDate
AutoGenerate 1 While $(varMinDate) + IterNo() -1 <= $(varMaxDate);
MasterCalendar:
Load
TempDate AS datefrom,
TempDate AS tempdate,
week(TempDate) As Week,
Year(TempDate) As Year,
Month(TempDate) As Month,
Day(TempDate) As Day,
YeartoDate(TempDate)*-1 as CurYTDFlag,
YeartoDate(TempDate,-1)*-1 as LastYTDFlag,
inyear(TempDate, Monthstart($(varMaxDate)),-1) as RC12,
date(monthstart(TempDate), 'MMM-YYYY') as MonthYear,
ApplyMap('QuartersMap', month(TempDate), Null()) as Quarter,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear,
WeekDay(TempDate) as WeekDay
Resident TempCalendar
Order By TempDate ASC;
Drop Table TempCalendar;
I think this seems like an issue with rounding. Since your dates contain 00:00:000 at the end, it seems that ADate also contained a time stamp (although it looked time). So when we created a Key using ADate & Number, for some reason it kept 29/02/2016 for both 29/02/2016 and 01/03/2016. When I used Floor() the issue seems to have been resolved.