Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je cherche à simplifier mon code et dans ce contexte, je ne parviens pas à utiliser correctement un for each.
Voici ce que j'ai au départ:
LOAD
*,
Date(Date#(DATECREATION, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date de création],
Date(Date#(DATEMISEENINSTANCE, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date de mise en instance],
Date(Date#(DATEANNULATION, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date d'annulation],
Date(Date#(DATEREFUS, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date de refus],
Date(Date#(DATEVALIDATION, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date de validation],
Date(Date#(DATEMISEAJOUR, 'YYYY-MM-DD'), 'DD/MM/YYYY') as [Date de mise à jour];
J'aimerai traiter ces lignes par un for each mais je n'y parviens pas. J'ai essayé de définir dans un premier temps des listes de valeurs de variables, mais j'ai l'impression que ça ne fonctionne par et que c'est pas une liste qui est crée.
SET DateList = DATECREATION, DATEANNULATION, DATEMISEAJOUR, DATEMISEENINSTANCE, DATEREFUS, DATEVALIDATION;
SET DateList_Alias = [Date de création], [Date de mise en instance], [Date d'annulation], [Date de refus], [Date de validation], [Date de mise à jour];
M'aideriez-vous à implémenter cette boucle svp ?
Cordialement,
Je ne suis pas 100% sure de ce que tu essaye de faire avec la "boucle" et ton script, mais ton SET doit etre entre guimets, tel SET DateList = 'DATECREATION, DATEANNULATION, DATEMISEAJOUR, DATEMISEENINSTANCE, DATEREFUS, DATEVALIDATION';
Un SET doit etre entre 2 guimets et un LET est une evaluation d'une formule/expression.
Est-ce que tu peut donner plus d'info sur "J'aimerai traiter ces lignes pas un for each mais je n'y parviens pas.", je ne suis pas sure de comprendre ceci.
Cordialement.
Pour être plus clair, J'aimerai arrivé à une syntaxe dans ce genre:
SET i=0;
FOR EACH Date_Item IN DateList
LOAD Date(Date#($(Date_Item), 'YYYY-MM-DD'), 'DD/MM/YYYY') as '$(DateList_Alias[0])';
i=$(i)+1;
NEXT Date_Item;
Bien sûr cette syntaxe est mauvaise mais c'est juste pour illustré ce que je voudrais.
Je comprends vraiment pas pourquoi tu veut faire ceci, tu va finir avec 6 tables differentes et sans une "foreign/primary" key. Dans un data model Qlik tu va avoir un cle synthetique, mais bon. Je crois que ce que tu cherche est dans les environs de:
SET DateList = 'DATECREATION', 'DATEANNULATION', 'DATEMISEAJOUR', 'DATEMISEENINSTANCE', 'DATEREFUS', 'DATEVALIDATION';
FOR EACH DateList in $(DateList)
$(DateList):
LOAD
*,
$(DateList)
FROM TableDeDonnees;
NEXT DateList;
Mais si "etoile" inclus le champ, cela ne marchera jamais. Qlik, au contraire de SQL, necessite que chaque nom de champ dans une table soit unique.
Enleve l'etoile pour voir ce qui ce passe.
Cordialement