Qlik Community

New to QlikView

Discussion board where members can get started with QlikView.

Highlighted
gf
Contributor

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!

Tags (4)
Labels (4)
1 Solution

Accepted Solutions
jyothish8807
Honored Contributor II

Re: Dynamic LOAD Variable

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
2 Replies
jyothish8807
Honored Contributor II

Re: Dynamic LOAD Variable

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
MVP
MVP

Re: Dynamic LOAD Variable

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