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

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
pirotfab
Creator
Creator

boucle dans script

Bonjour,

J'essaie de recharger des qvd dans un script, mais seulement les deux dernières années

Ci-joint mon script qui ne s'arrête pas ...

Avez vous des idées ?

Merci

let vAnneeInitProdyear(today())-1;
let vAnneeMaxProd = year(today());


do while vAnneeInitProd <= vAnneeMaxProd

LOAD *
FROM
prodREEL_$(vAnneeInitProd).qvd
(
qvd);

Concatenate
LOAD *
FROM
prodOBJ_$(vAnneeInitProd).qvd
(
qvd);

let vAnneeInitProd = $(vAnneeInitProd)+1;
loop

10 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

‌le problème vient du fait que tes tables ont des structures différentes. On doit donc utiliser  le mot clé Concatenate qui ne peut pas être utilisé si la table n'existe pas. Tu ne peux donc pas le mettre sur ta 1ère table, se qui pose problème lors du second passage dans la boucle.

Il y a 2 solutions:

  1. Celle utilisée, qui consiste à faire une 1ère boucle pour charger la première table (auto concatenation) qui va créer la structure, et de faire une 2eme boucle pour charger les autres tables avec le mot clé Concatenate.
  2. N'utiliser qu une boucle et t'arranger pour que tes requêtes te retournes les mêmes structures  ( ajouter les champs avec une valeur Null ==> Null() as monChamp). Dans ce cas, pas besoin d'utilisé le mot clé Concatenate (concaténation automatique)
  3. creer la structure avant la boucle (load  inline avec tous les champs sans valeur), puis une seule boucle avec tes requêtes précédée du mot clé Concatenate