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

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
gf
Creator III
Creator III

Dynamic LOAD Variable

Hello,

Is something like this

IF(GRUPPE1='3',LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP as GUVKONTOGRUPPENKEY,LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP as KONTOGRPKEY);

possible in LOAD-statement.

Currently my LOAD looks like this:

Salden:
LOAD * INLINE [Dummy];
FOR i=0 TO NoOfRows('SprachenAll')-1
LET vLand = peek('CTLLANDISO', i, 'SprachenAll');
LET vSprache = peek('SPRACHE',i,'SprachenAll');
LET vLIB = '$(vLand)' & 'DATA';

Concatenate(Salden)


LOAD 

TEXT as TEXT,
KONTONUMMER as KONTONUMMER,
KONTOTEXT as KONTOTEXT,
LANDISO & FCO & KONTONUMMER & KONTOTEXT & BLTUGP as KONTOSALDO,
//IF(GRUPPE1='3',LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP as GUVKONTOGRUPPENKEY,LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP as KONTOGRPKEY);
LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP as KONTOGRPKEYL;
//LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP as GUVKONTOGRUPPENKEY;
SQL Select LANDISO, b.bltspriso as BLTSPRISO, b.KPFCO AS FCO, a.bltgs1 AS GRUPPE1, regexp_replace(a.bltgs2,'Ÿ','') AS GRUPPE2, regexp_replace(a.bltgs3,'Ÿ','') AS GRUPPE3...

Thanks in advance!

Labels (1)
1 Solution

Accepted Solutions
jyothish8807
Master II
Master II

May be like this:

Salden:
LOAD * INLINE [Dummy];
FOR i=0 TO NoOfRows('SprachenAll')-1
LET vLand = peek('CTLLANDISO', i, 'SprachenAll');
LET vSprache = peek('SPRACHE',i,'SprachenAll');
LET vLIB = '$(vLand)' & 'DATA';

Concatenate(Salden)


LOAD 

TEXT as TEXT,
KONTONUMMER as KONTONUMMER,
KONTOTEXT as KONTOTEXT,
LANDISO & FCO & KONTONUMMER & KONTOTEXT & BLTUGP as KONTOSALDO,
IF(GRUPPE1='3',LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP) as GUVKONTOGRUPPENKEY,
IF(GRUPPE1<>'3',LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP) as KONTOGRPKEY, LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP as KONTOGRPKEYL; //LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP as GUVKONTOGRUPPENKEY; SQL Select LANDISO, b.bltspriso as BLTSPRISO, b.KPFCO AS FCO, a.bltgs1 AS GRUPPE1, regexp_replace(a.bltgs2,'Ÿ','') AS GRUPPE2, regexp_replace(a.bltgs3,'Ÿ','') AS GRUPPE3...

 

Best Regards,
KC

View solution in original post

2 Replies
jyothish8807
Master II
Master II

May be like this:

Salden:
LOAD * INLINE [Dummy];
FOR i=0 TO NoOfRows('SprachenAll')-1
LET vLand = peek('CTLLANDISO', i, 'SprachenAll');
LET vSprache = peek('SPRACHE',i,'SprachenAll');
LET vLIB = '$(vLand)' & 'DATA';

Concatenate(Salden)


LOAD 

TEXT as TEXT,
KONTONUMMER as KONTONUMMER,
KONTOTEXT as KONTOTEXT,
LANDISO & FCO & KONTONUMMER & KONTOTEXT & BLTUGP as KONTOSALDO,
IF(GRUPPE1='3',LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP) as GUVKONTOGRUPPENKEY,
IF(GRUPPE1<>'3',LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP) as KONTOGRPKEY, LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP as KONTOGRPKEYL; //LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP as GUVKONTOGRUPPENKEY; SQL Select LANDISO, b.bltspriso as BLTSPRISO, b.KPFCO AS FCO, a.bltgs1 AS GRUPPE1, regexp_replace(a.bltgs2,'Ÿ','') AS GRUPPE2, regexp_replace(a.bltgs3,'Ÿ','') AS GRUPPE3...

 

Best Regards,
KC
jonathandienst
Partner - Champion III
Partner - Champion III

No, that syntax is not legal. Do this instead:

IF(GRUPPE1='3',
	LAND & SPRACHE & GRUPPE5 & GRUPPE6 & BLTUGP) as GUVKONTOGRUPPENKEY,	
IF(GRUPPE1<>'3',	
	LANDISO & BLTSPRISO & GRUPPE1 & GRUPPE2 & GRUPPE3 & GRUPPE4 & GRUPPE5 & GRUPPE6 & BLTUGP) as KONTOGRPKEY,

 

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