Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all,
I would like to use the following statement in my script, but it doesn't work:
"reisezeit" is a variable which can be 0 or 1.
if reisezeit = 1 then
sum(if(Reisezeit='Nein', Stunden) )as Stunden_Projekt;
elseif
reisezeit = 0
sum(Stunden) as Stunden_Projekt;
ELSE
sum(Stunden) as Stunden_Projekt;
end if
Does someone has an idea why?
Thank you for your help.
There is still a problem with "
:
If takes 2-3 parameters"
and if I put $ away QlikView doens't find the field as it is a varible ?!
Hope you know why and you can help me
Hi Rob!
There are 2 kinds of "IF" keyword.
The 1st is when you use it in Data Loading, use this syntax:
IF (condition) THEN
{statement_if_true}
ELSE
{statement_if_false}
END IF
The 2nd if is available in the Expression dialog with syntax:
=IF(condition, statement_if_true, statement_if_false)
It think what you're looking for is in the expression, which is 2nd if.
Hope that helps
A
If you use other fields in your load statement, you must have a Group By Clause in your script.
LOAD
dimension1,
If ($(reisezeit) = 1,
sum(if(Reisezeit='Nein', Stunden)),
sum(Stunden)
) as Stunden_Projekt
RESIDENT Data
GROUP BY dimension1 ;
I used dmension1 as example.
I use like you wrote:
Projekte_Monat:
LOAD MAID_Z,
left (MAID_Z, 14) as MAID_gesamt_Z,
If ($(reisezeit) = 1,
sum(if(Reisezeit='Nein', Stunden)),
sum(Stunden)
) as Stunden_Projekt
Resident ControllerExport_tmp1
Group by MAID_Z;
But there is always:
Error in expression: If takes 2-3 parameters
Hi Adrian,
thank you for your help: I'm looking for the Data Loading:
I changed to:
Projekte_Monat:
LOAD MAID_Z,
left (MAID_Z, 14) as MAID_gesamt_Z,
If $(reisezeit) = 1 then
sum(if(Reisezeit='Nein', Stunden)) as Stunden_Project;
else
sum(Stunden) as Stunden_Projekt;
ENDIF
Resident ControllerExport_tmp1
Group by MAID_Z;
But there is still a mistake with my syntax, I can't solve
Write this within load statement where your field Stunden exists in table
load
if($(Reisezeit) = 1,sum(if($(Reisezeit)='Nein', Stunden)),
if($(Reisezeit) = 0,sum(Stunden))) as Stunden_Projekt
Hi,
try this one.
Projekte_Monat:
LOAD
MAID_Z,
left (MAID_Z, 14) as MAID_gesamt_Z,
If($(reisezeit)=1,if(Reisezeit='Nein', Sum(Stunden)),sum(Stunden)) as Stunden_Project
Resident ControllerExport_tmp1
Group by MAID_Z;
where you are decler this variable. send your full script. reisezeit variable value standard or random.
It's strange because i use the exact script you wrote in a test application and it works. (I have created an inline table with the 3 fields Reisezeit, Stunden and MAID_Z).
These 3 fields exist in the table ControllerExport_tmp1 ?
Hi I changed to:
if($(reisezeit) = 1,sum(if( Reisezeit ='Nein', Stunden))),
if($(reisezeit) = 0,sum(Stunden)) as Stunden_Projekt
This works, but the results are wrong!
If I compare to:
sum (Stunden) as Stunden_Projekt
there are different results => Do you have an explanation/idee?
Thank you!
I just wrote
set reisezeit = 0; //at the beginning of the skript
But theere is invalid expression!
Is there a problem with the variable?