Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Asignar valores a campos nulos en Script

En el script creé un catálogo de entidades registrado por Código y añadí la variable M asignándole el valor 1.
Lo que ocurre es que Código incluye otros valores los cuales deben ser diferentes a M=1; sin embargo, no los puedo escribir en el catálogo porque pueden aparecer nuevas entidades en el futuro. Las entidades a las que asigné el valor M=1 son fijas; no obstante, las demás que deben ser diferentes a M=1 pueden llegar a ser más en la base de datos para el futuro.
¿Entonces mi consulta es cómo asignarle un valor diferente a M=1 a las demás entidades y que se le asigne ese valor diferente de M=1 en caso de que se añada una nueva entidad a la base de datos?

Load * inline

[

Código,M

1234,1

1514,1

1501,1

1786,1

2050,1

945,1

977,1

396,1

7665,1

974,1

,

];

4 Replies
joseph_morales
Creator III
Creator III

Hola Maricruz,

Lo que entiendo es que deseas mantener esas entidades con M =1 , y el resto de entidades que sean diferentes asignarles otro valor de M diferente a 1, de ser ese el caso puede utilizar lo siguiente:

Crear una variable donde guardes los valores que quieres que tengan M=1, después lo comparas con tu fuente con Match, Si coinciden le asignara el valor de 1 a M, caso contrario le asignara el valor a partir de 2.

SET vList ='1234,1514,1501,1786,2050,945,977,396,7665,974';

datos:
load
*,
IF(match(Código,$(vList)),AutoNumber(1),AutoNumber(Código)) as M;
Load * inline
[
Código
1234
1514
1501
1786
2050
945
977
396
7665
974
007
7789
1489
1484
4747
]
;

Saludos

Best Regards,
Joseph Morales
Anonymous
Not applicable
Author

Hola Joseph, me podrías orientar un poco más con qué hacer, todavía no puedo ver el número 2 en los códigos nulos de entidades "-", adjunto dos imágenes para que te des una idea de lo que veo en el Qlikview.

Imagen 5.PNGito También incorporo lo que tengo escrito en el Script:Imagen 4.PNG

Load * inline

[

MIL.Cal.CodInversionista,RL

13624,1

1010,1

1101,1

1446,1

20609,1

911,1

947,1

325,1

7805,1

968,1

951,1

375,1

954,1

1137,1

354,1

6122,1

891,1

13657,1

8548,1

392,1

1107,1

6106,1

6413,1

939,1

4976,1

936,1

,

];

SET vList ='13624,1010,1101,1446,20609,911,947,325,7805,968,951,375,954,1137,354,6122,891,13657,8548,392,1107,6106,6413,939,4976,936';

load

*,

IF(match(MIL.Cal.CodInversionista,$(vList)),AutoNumber(1),AutoNumber(MIL.Cal.CodInversionista)) as RL;

Load * inline

[

MIL.Cal.CodInversionista

13624

1010

1101

1446

20609

911

947

325

7805

968

951

375

954

1137

354

6122

891

13657

8548

392

1107

6106

6413

939

4976

936

];

joseph_morales
Creator III
Creator III

Hola Maricruz

Estas concatenando esta tabla con otro tabla adicional, se supone que en el Load * inline deberían estar todas las entidades a las que se asignara 1 u otro valor.

La variable vList va a contener las entidades que se le asignara el valor de 1, y aplicando la formula la que no este incluida se le asignara otro número. Puedes aplicar de frente la formula a la tabla en el script, evaluando el campo donde esta el código de las entidades.

Después de ejecutar tu script donde esta la formula obtengo que todos tienen el valor de 1, eso implica que hay otra tabla con el campo MIL.Cal.CodInversionista, creo que deberías aplicar ahí la formula.

Saludos

Best Regards,
Joseph Morales
Anonymous
Not applicable
Author

Hola Joseph, hice lo anterior y aunque nunca vi los valores diferentes a 1 en los demás códigos, sí logré resolver el problema. ¡Gracias!