Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
shirleyc40
Creator
Creator

Canonical Date giving wrong count

I have data that looks like this: 

EventTable:

EventNameSystemIdEventQuoteNumbereventDateTime
QuestionRequestQWeb240137309/10/2020
QuestionRequestQWeb240137319/10/2020
QuestionRequestQWeb89811808/31/2020
RatingRequestLifeWeb24178/12/2020
RatingRequestLifeWeb24248/13/2020
RatingRequestLifeWeb28118/3/2020
RatingRequestLifeWeb28118/4/2020

Note that one quote number can have multiple rating requests

QuoteTable: 

QuoteIdSystemIdStatusquote_date
2417LifeWebAccepted8/13/2020
2424LifeWebAccepted8/20/2020
2811LifeWebAccepted8/9/2020

 

And I'm trying to have one chart that shows the date and number of distinct rating requests and

another chart that shows the date and the number accepted. I have these two tables linked by quoteid and eventquotenumber (renamed them to QuoteNum). I tried using this code to make the canonical date:

DateBridge:
Load
QuoteNum,
quote_date as CanonicalDate,
'Quote' as DateType
Resident QuoteInfo;

Load
QuoteNum,
eventDateTime as CanonicalDate,
'Event' as DateType
Resident TestEvents;

But when I do count({<EventName={'RatingRequest'}, DateType  = {'Event'} >} distinct EventQuoteNumber) 

 it gives a lower count

Labels (1)
1 Reply
prerakdt
Contributor II
Contributor II

Did you add master time dimension table?

I tried below script, that is giving me correct count. You might want to try it.

EventTable:
Load * Inline
[
EventName,SystemId1,QuoteNum,eventDateTime
QuestionRequest,QWeb,24013730,'9/10/2020'
QuestionRequest,QWeb,24013731,'9/10/2020'
QuestionRequest,QWeb,8981180,'8/31/2020'
RatingRequest,LifeWeb,2417,'8/12/2020'
RatingRequest,LifeWeb,2424,'8/13/2020'
RatingRequest,LifeWeb,2811,'8/3/2020'
RatingRequest,LifeWeb,2811,'8/4/2020'
];


QuoteTable:
Load * Inline
[QuoteNum,SystemId,Status,quote_date
2417,LifeWeb,Accepted,'8/13/2020'
2424,LifeWeb,Accepted,'8/20/2020'
2811,LifeWeb,Accepted,'8/9/2020'
];

tmpDateBridge:
Load
QuoteNum,
Date(quote_date) as CanonicalDate,
'Quote' as DateType
Resident QuoteTable;

Load
QuoteNum,
Date(eventDateTime) as CanonicalDate,
'Event' as DateType
Resident EventTable;

NoConcatenate
DateBridge:
Load * Resident tmpDateBridge where IsNull(CanonicalDate) = 0;

Drop Table tmpDateBridge;


tmp:
Load Min(CanonicalDate) as minCanonicalDate, Max(CanonicalDate) as maxCanonicalDate Resident DateBridge;

Let vMinDate = Num(Peek('minCanonicalDate',0,'tmpDateBridge'));
Let vMaxDate = Num(Peek('maxCanonicalDate',0,'tmpDateBridge'));
Drop table tmp;

TempCalendar:
LOAD
$(vMinDate) + Iterno()-1 As Num,
Date($(vMinDate) + IterNo() - 1) as TempDate
AutoGenerate 1 While $(vMinDate) + IterNo() -1 <= $(vMaxDate);

MasterCalendar:
Load
TempDate AS [Canonical Date],
TempDate,
week(TempDate) As Week,
Year(TempDate) As Year,
Month(TempDate) As Month,
Date(Date#(Year(TempDate)&'-'&Month(TempDate),'YYYY-MMM'),'YYYY-MM') as YearMnth,
Day(TempDate) As Day,
// 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;