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;
not on the total bit, i havent put that in, before that when we used =Count(DISTINCT name) as the expression
Not sure I follow your response. Is this not what you want?
no, going back to this file
https://community.qlik.com/servlet/JiveServlet/download/1096831-239136/Community_227506.qvw
im not using that total column yet, just the =Count(DISTINCT name) as the expression
i want it to show all dates even when a name selection is made as i am using name as a dimension also
Unable to get rid of the null row, but if having that there is not an issue, you can try this:
=If(Len(Trim(name)), Count(DISTINCT name) +Avg(TOTAL {1}0))
not quite, in that last example you sent.
add a list box for name and then click the name and you can see it only shows 1 values
New script (not the best script to use)
Table:
LOAD name,
datefrom,
dateto,
duration
FROM
[https://community.qlik.com/thread/227506]
(html, codepage is 1252, embedded labels, table is @1);
Concatenate(Table)
LOAD 'Rahul' as name,
datefrom,
dateto,
duration
FROM
[https://community.qlik.com/thread/227506]
(html, codepage is 1252, embedded labels, table is @1);
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 Table;
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 Date,
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;
Join(MasterCalendar)
LOAD DISTINCT name
Resident Table;
FinalMasterCalendar:
LOAD *,
Date&name as Key
Resident MasterCalendar;
DROP Table MasterCalendar;
Join(Table)
IntervalMatch(Date, name)
LOAD datefrom,
dateto,
name
Resident Table;
Dimensions:
1) name
2) Date
Expression:
RangeSum(
Count({<Key = {"=Len(Trim(datefrom)) > 0"}>}DISTINCT name),
Avg({<Key = {"=Len(Trim(datefrom)) = 0"}>}0))
every field is now populated with 1's but i think its my fault as my data isnt like the example i gave .slight amendment to the data...
table structure is like this:
tableA
enum | datefrom | dateto | duration |
12 | 21/12/2015 | 24/12/2015 | 4 |
12 | 27/01/2016 | 27/01/2016 | 1 |
12 | 12/02/2016 | 15/02/2016 | 2 |
12 | 26/02/2016 | 26/02/2016 | 1 |
12 | 10/03/2016 | 10/03/2016 | 0.5 |
12 | 01/04/2016 | 01/04/2016 | 1 |
12 | 18/04/2016 | 18/04/2016 | 0.5 |
12 | 29/04/2016 | 29/04/2016 | 1 |
12 | 02/09/2016 | 09/09/2016 | 6 |
tableB
enum | name |
12 | john |
Can you add another enum?
Like this..
tableA
enum | datefrom | dateto | duration |
12 | 21/12/2015 | 24/12/2015 | 4 |
12 | 27/01/2016 | 27/01/2016 | 1 |
12 | 12/02/2016 | 15/02/2016 | 2 |
12 | 26/02/2016 | 26/02/2016 | 1 |
13 | 10/03/2016 | 10/03/2016 | 0.5 |
13 | 01/04/2016 | 01/04/2016 | 1 |
13 | 18/04/2016 | 18/04/2016 | 0.5 |
13 | 29/04/2016 | 29/04/2016 | 1 |
13 | 02/09/2016 | 09/09/2016 | 6 |
tableB
enum | name |
12 13 | john rahul |
Yes, thank you