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

Announcements
We are aware of an issue with the Product Downloads page and looking into it.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problem in using variable in Loop

I couldn't run this script as it shows as

vMonthLoop =  to

in the debugger

I don't understand what's wrong with this,

Can anyone help to fix my script?

Thank You!

let vStartYear = Min(AccidentYear);

let vEndYear = Max(AccidentYear);

//*************************Finding the Max Development Month for each Year*********************************

FOR vMonthLoop = $(vStartYear) to $(vEndYear)

  Left Join(CTRNPF)

  LOAD

  max(DevelopmentMonth) AS MaxMonth$(vMonthLoop)

  Resident CTRNPF_Max where AccidentYear=$(vMonthLoop);

NEXT

Labels (1)
1 Solution

Accepted Solutions
swuehl
Champion III
Champion III

You can't aggregate field values just like you've done in your vStartYear and vEndYear definitions.

You need to do the aggregations in a LOAD statement, then peek() the values from the table:

EXT:

LOAD Min(AccidentYear) as Min,

          Max(AccidentYear) asMax

Resident YourTablewithAccidentYear;

let vStartYear = Peek('Min',0,'EXT');

let vEndYear = Peek('Max',0,'EXT');


DROP TABLE EXT;

Check the variables in script debugger at this point. Both should hold numeric values.

View solution in original post

2 Replies
swuehl
Champion III
Champion III

You can't aggregate field values just like you've done in your vStartYear and vEndYear definitions.

You need to do the aggregations in a LOAD statement, then peek() the values from the table:

EXT:

LOAD Min(AccidentYear) as Min,

          Max(AccidentYear) asMax

Resident YourTablewithAccidentYear;

let vStartYear = Peek('Min',0,'EXT');

let vEndYear = Peek('Max',0,'EXT');


DROP TABLE EXT;

Check the variables in script debugger at this point. Both should hold numeric values.

Not applicable
Author

Thank You. It works!!!!