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

Announcements
AWS Degraded - You may experience Community slowness, timeouts, or trouble accessing: LATEST HERE
cancel
Showing results for 
Search instead for 
Did you mean: 
sachin08
Contributor II
Contributor II

Create a Master calendar using For loop.

Hi,

I need Master calendar  on SalesDate using For loop

Can anyone tell me what is wrong with my syntax here? 


Sales:

Load * Inline [

SalesDate

02/11/2010

01/11/2011

02/01/2012

02/21/2012

01/04/2012

02/11/2013

] (delimiter is '|');


MinMaxDates:


LOAD Min(SalesDate) AS minDate,Max(SalesDate) AS maxDate RESIDENT Sales;

vMinDate=Num(Peek('minDate',0,'MinMaxDates'));

vMaxDate=Num(Peek('maxDate',0,'MinMaxDates'));

vNumDates = vMaxDate-vMinDate+1; 

DROP TABLE MinMaxDates;

FOR i=1 TO vNumDates


      MasterCalendar:

      

      LOAD

        SalesDate,

        Year(SalesDate) AS Year,


        Ceil(Month(SalesDate)/3) AS Quarter,


        Month(SalesDate) AS Month,


        Day(SalesDate) AS Day;


    LOAD


       Date( $(vMinDate) + $(i) - 1 ) AS SalesDate

    AUTOGENERATE 1;


NEXT

1 Reply
sunny_talwar

Besides this being really slow... I had no problems running your script

Sales:

LOAD * INLINE [

    SalesDate

    02/11/2010

    01/11/2011

    02/01/2012

    02/21/2012

    01/04/2012

    02/11/2013

];


MinMaxDates:

LOAD Min(SalesDate) AS minDate,

Max(SalesDate) AS maxDate

RESIDENT Sales;


vMinDate=Num(Peek('minDate',0,'MinMaxDates'));

vMaxDate=Num(Peek('maxDate',0,'MinMaxDates'));

vNumDates = vMaxDate-vMinDate+1;


DROP TABLE MinMaxDates;


FOR i=1 TO vNumDates


MasterCalendar:

LOAD SalesDate,

Year(SalesDate) AS Year,

Ceil(Month(SalesDate)/3) AS Quarter,

Month(SalesDate) AS Month,

Day(SalesDate) AS Day;

LOAD Date( $(vMinDate) + $(i) - 1 ) AS SalesDate

AUTOGENERATE 1;


NEXT

My environmental variables were like this

SET ThousandSep=',';

SET DecimalSep='.';

SET MoneyThousandSep=',';

SET MoneyDecimalSep='.';

SET MoneyFormat='$#,##0.00;($#,##0.00)';

SET TimeFormat='h:mm:ss TT';

SET DateFormat='MM/DD/YYYY';

SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

SET FirstWeekDay=6;

SET BrokenWeeks=1;

SET ReferenceDay=0;

SET FirstMonthOfYear=1;

SET CollationLocale='en-US';

SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';

SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December';

SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';

SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday';