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: 
Not applicable

Loop in QlikView SCript will not work

I Try to make a Loop in my QlikView Script but it will not work.

Can someone tell my what i do wrong.

UITVOERDERS:

LOAD

  SUBFIELD(REPLACE(Subfield(item_lijst,';',1), ',', ';'), ';',1) AS Uitvoerder,

  SUBFIELD(REPLACE(item_code_lijst, ',', ';'), ';',1) AS Uitvoerder_Code

  ;

SQL SELECT *

FROM mtc_rubriek

WHERE rubcode = 'PROJ_006';

UITVOERDERS:

LOAD

  SUBFIELD(REPLACE(Subfield(item_lijst,';',1), ',', ';'), ';',2) AS Uitvoerder,

  SUBFIELD(REPLACE(item_code_lijst, ',', ';'), ';',2) AS Uitvoerder_Code

  ;

SQL SELECT *

FROM mtc_rubriek

WHERE rubcode = 'PROJ_006';

UITVOERDERS:

LOAD

  SUBFIELD(REPLACE(Subfield(item_lijst,';',1), ',', ';'), ';',3) AS Uitvoerder,

  SUBFIELD(REPLACE(item_code_lijst, ',', ';'), ';',3) AS Uitvoerder_Code

  ;

SQL SELECT *

FROM mtc_rubriek

WHERE rubcode = 'PROJ_006';

This is the script total write down but than 10 times.

I Want to make a loop of it.

UITVOERDERSAANTAL:

LOAD

COUNT(DISTINCT(UitvoerderAantal)) AS MAXUITVOERDERS;

LOAD

  SUBFIELD(REPLACE(Subfield(item_lijst,';',1), ',', ';'), ';') AS UitvoerderAantal

  ;

SQL SELECT *

FROM mtc_rubriek

WHERE rubcode = 'PROJ_006';

LET V_MAXUITVOERDERS = MAXUITVOERDERS+1;

DROP TABLE UITVOERDERSAANTAL;

FOR i =1 to $(V_MAXUITVOERDERS)-1

LET LOOP = $(i);

//EXIT SCRIPT;

UITVOERDERS:

LOAD

  SUBFIELD(REPLACE(Subfield(item_lijst,';',1), ',', ';'), ';',$(LOOP)) AS Uitvoerder,

  SUBFIELD(REPLACE(item_code_lijst, ',', ';'), ';',$(LOOP)) AS Uitvoerder_Code

  ;

SQL SELECT *

FROM mtc_rubriek

WHERE rubcode = 'PROJ_006';

//STORE UITVOERDERS INTO Q:\Rapportages\Peter\UITVOERDER.QVD;

NEXT i

//DROP TABLE UITVOERDERSAANTAL;

EXIT SCRIPT;

BUT it doesn't work, can somebody help my with this question?

1 Solution

Accepted Solutions
Peter_Cammaert
Partner - Champion III
Partner - Champion III

One remark:

  • Change your variable assignment to LET V_MAXUITVOERDERS = peek('MAXUITVOERDERS')+1;

Best,

Peter

View solution in original post

2 Replies
Peter_Cammaert
Partner - Champion III
Partner - Champion III

One remark:

  • Change your variable assignment to LET V_MAXUITVOERDERS = peek('MAXUITVOERDERS')+1;

Best,

Peter

marcus_sommer

I'm not quite sure what you are trying to do but I think you don't need these complex loop then by using from subfield within a load and without the third parameter it will automatically loop through these field and generate for each item a record.

- Marcus