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

Announcements
ALERT: QlikView server communication interruptions following Microsoft Windows Domain Controller security updates
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Condicionales

Es posible la anidacion de if?

Tengo un error que dice

Error in expression:

If takes 2,3 parameters

Labels (1)
8 Replies
GabrielAraya
Employee
Employee

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.

Not applicable
Author

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

GabrielAraya
Employee
Employee

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



Not applicable
Author

Estabas en lo cierto.

Muchas gracias por tu ayuda.

Not applicable
Author

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())//))

AS

TERCIL

RESIDENT

PRO000_temp6









GabrielAraya
Employee
Employee

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

Not applicable
Author

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

GabrielAraya
Employee
Employee

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