Skip to main content
Announcements
July 15, NEW Customer Portal: Initial launch will improve how you submit Support Cases. IMPORTANT DETAILS
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.