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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
suzel404
Creator
Creator

How to create master calendarDate from 2 dates

Hi all,

how can I create a master calendar date from 2 dates : startdate & enddate in one table ?

Thanks for your help.

1 Solution

Accepted Solutions
MarcoWedel

Hi,

maybe one solution could be:

QlikCommunity_Thread_206159_Pic4.JPG

QlikCommunity_Thread_206159_Pic3.JPG

QlikCommunity_Thread_206159_Pic2.JPG

QlikCommunity_Thread_206159_Pic1.JPG

TMP:

LOAD RecNo() as ID,

    CODE,

    START_DATE,

    END_DATE

FROM [QlikCommunity_Thread_206159.qvd] (qvd);

tabDateLink:

CrossTable(DateType,Date)

LOAD ID,

    Date(START_DATE) as Start,

    Date(END_DATE) as End

Resident TMP;

tabCalendar:

LOAD *,

    Day(Date) as Day,

    WeekDay(Date) as WeekDay,

    Week(Date) as Week,

    WeekName(Date) as WeekName,

    Month(Date) as Month,

    MonthName(Date) as MonthName,

    Dual('Q'&Ceil(Month(Date)/3),Ceil(Month(Date)/3)) as Quarter,

    QuarterName(Date) as QuarterName,

    Year(Date) as Year,

    WeekYear(Date) as WeekYear;  

LOAD Date(MinDate+IterNo()-1) as Date

While MinDate+IterNo()-1 <= MaxDate;

LOAD Min(Date) as MinDate,

    Max(Date) as MaxDate

Resident tabDateLink;

hope this helps

regards

Marco

View solution in original post

6 Replies
sunny_talwar

Can you share the QVD with us?

satishkurra
Specialist II
Specialist II

See if this can help.

From Rob Wunderlinch

MarcoWedel

Hi,

maybe one solution could be:

QlikCommunity_Thread_206159_Pic4.JPG

QlikCommunity_Thread_206159_Pic3.JPG

QlikCommunity_Thread_206159_Pic2.JPG

QlikCommunity_Thread_206159_Pic1.JPG

TMP:

LOAD RecNo() as ID,

    CODE,

    START_DATE,

    END_DATE

FROM [QlikCommunity_Thread_206159.qvd] (qvd);

tabDateLink:

CrossTable(DateType,Date)

LOAD ID,

    Date(START_DATE) as Start,

    Date(END_DATE) as End

Resident TMP;

tabCalendar:

LOAD *,

    Day(Date) as Day,

    WeekDay(Date) as WeekDay,

    Week(Date) as Week,

    WeekName(Date) as WeekName,

    Month(Date) as Month,

    MonthName(Date) as MonthName,

    Dual('Q'&Ceil(Month(Date)/3),Ceil(Month(Date)/3)) as Quarter,

    QuarterName(Date) as QuarterName,

    Year(Date) as Year,

    WeekYear(Date) as WeekYear;  

LOAD Date(MinDate+IterNo()-1) as Date

While MinDate+IterNo()-1 <= MaxDate;

LOAD Min(Date) as MinDate,

    Max(Date) as MaxDate

Resident tabDateLink;

hope this helps

regards

Marco

suzel404
Creator
Creator
Author

See Attachment the QVD file.

thanks

jonathandienst
Partner - Champion III
Partner - Champion III

See HC's blog post about this sort of issue: Canonical Date

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein
suzel404
Creator
Creator
Author

I initiate this code :

But lines are maybe demultiplicated.

LOAD 

  CODE,

  YEAR(START_DATE) AS YEAR,

  MONTH(START_DATE) AS MONTH,

  NUM(START_DATE) AS START_DATE,

  NUM(END_DATE) AS END_DATE

FROM (qvd);

Number CODE in Jan 2016 : 525

Number CODE in Fev. 2016 : 493

When I create a master calendar number CODE of janv. 2016 and Fev 2016 are differents.

LOAD

  CODE,

  START_DATE,

  END_DATE,

  CALENDAR_DATE,

  YEAR(CALENDAR_DATE) AS CALYEAR,

  NUM(MONTH(CALENDAR_DATE)) AS CALMONTHNUM,

  MONTH(CALENDAR_DATE) AS CALMONTHNAME,

  WEEK(CALENDAR_DATE) AS CALWEEKNUM

  ;

LOAD

  *,

  NUM(START_DATE + ITERNO()-1)  AS CALENDAR_DATE

WHILE START_DATE + ITERNO() - 1 <  END_DATE

  ;

LOAD

  CODE,

  START_DATE,

// END_DATE

  IF(END_DATE = START_DATE , END_DATE +1, END_DATE) AS END_DATE

  ;

LOAD

  CODE,

  NUM(START_DATE) AS START_DATE,

  NUM(END_DATE) AS END_DATE

FROM (qvd);

Thanks you for your help.