Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
chadliagabsi
Creator II
Creator II

LOAD with CONDITION

Bonjour,

je veux diffusionner un champs sur deux sous une condition.

LOAD CODE,

SPECIALITE,

     LIBELLE,

     if(SPECIALITE=19 ,CODE ) as CODE_CHIRUGIEN ,

     if(SPECIALITE=02,CODE ) as CODE_ANESTHESISTE

FROM

(qvd);


J'ai utilisé ce script et ça marche pas toujours il me donne CODE dans CODE_CHIRUGIEN sans vérifier la condition.


Merci .

1 Solution

Accepted Solutions
lcloatre
Partner - Creator III
Partner - Creator III

As-tu essayé en mettant entre quotes ?

if(SPECIALITE='02',CODE ) as CODE_ANESTHESISTE

View solution in original post

19 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

Bonjour Chadlia,

peux-tu nous transmettre un jeu de données ? est-ce normal qu'il n'y a pas de chemin vers un qvd ?

Sinon essaie peut-être de mettre entre quote tes chiffres ?

Exemple : if(SPECIALITE='19',CODE ) as CODE_CHIRUGIEN

Kevin

lcloatre
Partner - Creator III
Partner - Creator III

Je te conseille de faire 2 chargements :

TABLE_TEMP_1:

LOAD CODE,

SPECIALITE,

     LIBELLE,

     CODE as CODE_CHIRUGIEN

FROM

(qvd)

where SPECIALITE=19;


TABLE_TEMP_2:

LOAD CODE,

SPECIALITE,

     LIBELLE,

     CODE as CODE_ANESTHESISTE

FROM

(qvd)

where SPECIALITE=02;


TABLE:

LOAD *

RESIDENT TABLE_TEMP_1;


join

LOAD *

RESIDENT TABLE_TEMP_2;


DROP TABLE TABLE_TEMP_1;

DROP TABLE TABLE_TEMP_2;


kevinchevrier
Partner - Creator III
Partner - Creator III

Chadlia,

Pour info je n'arrive pas à reproduire ton erreur. Es-tu sûr que tes données ne sont pas égales à 19 ?

Comment as-tu fait ta vérification ? Tu peux faire ta vérification dans une "zone table"...

Peux-tu nous transmettre à minima des copies d'écran avec des exemples ?

Merci

Kevin

chadliagabsi
Creator II
Creator II
Author

Bonjour kevin,

si j'en ai le chemin juste je l'ai supprimé .

le probleme il existe une jointure de CODE.

Voila les deux tables :

specialite:

LOAD CODE,

SPECIALITE,

     LIBELLE ,

    if(SPECIALITE=19 ,CODE ) as CODE_CHIRUGIEN ,

    if(SPECIALITE=02,CODE ) as CODE_ANESTHESISTE  

FROM


(qvd);

medecin:

LOAD

     NUMDOS as NDP,

    

     L3MED as CODE

FROM


(qvd);

kevinchevrier
Partner - Creator III
Partner - Creator III

1) Soit tu ne veux pas faire la fusion et tu renommes ton deuxième champ code comme ceci :

specialite:

LOAD CODE,

SPECIALITE,

     LIBELLE ,

    if(SPECIALITE=19 ,CODE ) as CODE_CHIRUGIEN ,

    if(SPECIALITE=02,CODE ) as CODE_ANESTHESISTE

FROM (qvd);


medecin:

LOAD

     NUMDOS as NDP,

     L3MED as CODE_AUTRES

FROM (qvd);


2) Soit tu veux les lier :

specialite_temp:

LOAD CODE,

SPECIALITE,

     LIBELLE

FROM (qvd);

left join

LOAD

    L3MED as CODE,

     NUMDOS as NDP

FROM (qvd);


specialite :

Load *,

    if(SPECIALITE=19 ,CODE ) as CODE_CHIRUGIEN ,

    if(SPECIALITE=02,CODE ) as CODE_ANESTHESISTE

Resident specialite_temp;

drop table specialite_temp;

Kevin


kevinchevrier
Partner - Creator III
Partner - Creator III

Cependant, je ne vois pas où est le problème puisque tu charges dans 2 tables différentes...

Kevin

kevinchevrier
Partner - Creator III
Partner - Creator III

Dans ton LOAD qui permet de générer le QVD, il faudrait peut-être que tu fasses :

num(SPECIALITE) as SPECIALITE

car il est possible que tu aies des espaces que tu ne vois pas

Kevin

chadliagabsi
Creator II
Creator II
Author

Bonjour kevin,

Oui j'en ai des codes à la spécialité 02 et 19. J'ai essayé ton deuxième script mais toujours il y a problème.

voila mon jeu de données.

!

lcloatre
Partner - Creator III
Partner - Creator III

Chadlia,

C'est normal que tu n'as pas de code_anesthesiste car tu as la clause where SPECIALITE=19 dans ton chargement.