Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Es posible la anidacion de if?
Tengo un error que dice
Error in expression:
If takes 2,3 parameters
Of Course, The sintax is: If ( Condition, expr, expr) ...
The error message is related to a sintax error .. Does the message is in the script or in an expression?
Gabriel
Si gustas podrias postear aqui tu sentencia para verificarla.
IF(PEEK(CNR)>= 0 AND PEEK(CNR)<= 100, 'I',IF(PEEK(CNR)>= 100,0001 AND PEEK(CNR)<= 250,'II',
IF(PEEK(CNR)> 250,'III'))) AS TERCIL
I think that the problem is in the second IF, you have:
IF(PEEK(CNR)>= 100,0001 AND PEEK(CNR)<= 250
And you need to change 100,0001 by 100.0001
Gabriel
Estabas en lo cierto.
Muchas gracias por tu ayuda.
Disculpa ... es probable que a ese if no "le guste" la funcion peek?
LOAD
%ClaveCuenta
,
NroCliente
,
//sum(Retorno)
SUM
(IF ((VtoCta >= $(vFechaProc6m) AND VtoCta <= $(vFechaProceso)), Retorno)) as CNR,
IF(PEEK(CNR)>= 0 AND PEEK(CNR)<= 100, 'I',IF(PEEK(CNR)> 100 AND PEEK(CNR)<= 250,'II',
IF(
PEEK(CNR)> 250,'III',NULL())//))
ASTERCIL
RESIDENT
PRO000_temp6
Todo es posible, pero que quieres hacer, si lo que buscas es comparar con el valor del registro anteriormente leido, te recomendaria utilizar la funcion Previous('campo') ...
Gabriel
En ese load calculo un campo que se llama cnr y quiero utilizar ese mismo valor dentro para los if.
Tal vez no sea la funcion correcta. Si te ocurre algo comentame. Mientras me voy a manejar con una temporal.
Muchas gracias
Hola, Ahora entendi tu problema. Existe un tema de como Qlikview maneja los campos, el campo en cuestion (CNR) es creado en el proceso de Carga, por lo tanto solo sera reconocido e incorporado formalmente una vez que finaliza el proceso LOAD, Que te recomiendo:
Load
*,
If ( Peek(CNR) ........
;
Load
..... aqui creas el campo CNR ... mas los otros campos que lees del resident
Resident .. tabla.
Gabriel