Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
xavier_qlik
Contributor II
Contributor II

Actualizar campo cargado en load

Buenos días


Cargo un QVD con la etiqueta OBITF_LOAD, al final del script quiero actualizar un campo denominado "COD_EXCLUIDO" que anteriormente lo he añadido a la tabla con un LEFT JOIN



LEFT JOIN(OBITF_LOAD)


LOAD Id_Ofi4    AS OBIOFI,

     Id_Are     AS OBIARE,

     Id_Act     AS OBITIP,

     Id_Exl     AS COD_EXCLUIDO

FROM

$(vPathNameData)Terminal_variables.xls

(biff, embedded labels, table is [Hoja1$]);


Al final del SCRIPT quiero actualizar el campo añadido COD_EXCLUIDO, y no lo hace.


Ejecuto la instrucción siguiente:



LOAD

    IF (OBITIP = 'NS' OR OBITIP = 'ES',

           IF (COD_EXCLUIDO <> 'SI' AND COD_EXCLUIDO <> 'NO','SI', COD_EXCLUIDO),'SI') AS COD_EXCLUIDO

RESIDENT OBITF_LOAD;


¿Qué puedo estar haciendo mal?



1 Solution

Accepted Solutions
rodri_morales
Creator II
Creator II

Hola Francisco,

Como bien dijo Ruben, seguramente no se está realizando correctamente el join, por lo tanto no se agrega el campo a la tabla.

Otra posibilidad es que las condiciones del IF sean incorrectas y el campo no entre por ninguna de ellas, por lo tanto no se actualiza.

Creo que se podría cambiar la condición a la siguiente:

   IF (OBITIP = 'NS' OR OBITIP = 'ES',

           IF (COD_EXCLUIDO <> 'SI' AND COD_EXCLUIDO <> 'NO','SI', COD_EXCLUIDO),'SI') AS COD_EXCLUIDO

RESIDENT OBITF_LOAD;


IF(Match(OBITIP, 'NS', 'ES') and not Match(COD_EXCLUIDO, 'SI', 'NO'), 'SI',

     IF(not Match(OBITIP, 'NS', 'ES'), 'SI', COD_EXCLUIDO))                    as COD_EXCLUIDO

    

Para que entre en estas condiciones, COD_EXCLUIDO tiene que tener algún otro valor distinto a "SI" y "NO", y por otro lado el campo OBITIP debe tener otro valor distinto a "NS" y "ES".

Saludos!

View solution in original post

4 Replies
rubenmarin

Hola, lo primero sería comprobar que el join está funcionando y que COD_EXCLUIDO se está añadiendo a OBITF_LOAD.

Si está funcionando puedes aplicar los filtros de if (seleccionando OBITIP 'NS' y 'ES' y comprobando los valores de COD_EXCLUIDO, para llegar a mostrar el dato debería tener algún valor distinto a 'SI' y'NO'

rodri_morales
Creator II
Creator II

Hola Francisco,

Como bien dijo Ruben, seguramente no se está realizando correctamente el join, por lo tanto no se agrega el campo a la tabla.

Otra posibilidad es que las condiciones del IF sean incorrectas y el campo no entre por ninguna de ellas, por lo tanto no se actualiza.

Creo que se podría cambiar la condición a la siguiente:

   IF (OBITIP = 'NS' OR OBITIP = 'ES',

           IF (COD_EXCLUIDO <> 'SI' AND COD_EXCLUIDO <> 'NO','SI', COD_EXCLUIDO),'SI') AS COD_EXCLUIDO

RESIDENT OBITF_LOAD;


IF(Match(OBITIP, 'NS', 'ES') and not Match(COD_EXCLUIDO, 'SI', 'NO'), 'SI',

     IF(not Match(OBITIP, 'NS', 'ES'), 'SI', COD_EXCLUIDO))                    as COD_EXCLUIDO

    

Para que entre en estas condiciones, COD_EXCLUIDO tiene que tener algún otro valor distinto a "SI" y "NO", y por otro lado el campo OBITIP debe tener otro valor distinto a "NS" y "ES".

Saludos!

xavier_qlik
Contributor II
Contributor II
Author

Muchas gracias

ahora si me funciona

saludos

xavier_qlik
Contributor II
Contributor II
Author

Muchas gracias

ahora si me funciona

saludos