Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
guillaume_gorli
Creator II
Creator II

Modèle avec boucle

Bonjour,

Je fais face au délicat problème de la boucle :

J'ai trois bases simplifiées qui remontent chacune plusieurs informations :

Une base "FACTURATION"

Date

Type de commande

Code article

Quantité

Une base "POINTAGE"

Date

Nom de l'employé

Marché

Heures travaillées

Une base matrice "MATRICE" faisant le lien entre les deux

Type de commande

Marché


je souhaite rassembler ces informations à savoir remonter par marché les heures facturées et les heures pointées. je souhaite également pouvoir faire des sélections dynamiques en fonction de la date (mois, années, etc...)


Ainsi dans mon exemple :


D'après la base Pointage, l'employé Eric (qui travaille pour le marché rouge) a travaillé 84,8h au total.

D'après la base Matrice, les types de commandes correspondant au marché rouge sont D0, O0, D1, O1, D9, D2, O2, D5 et O5

D'après la base Facturation, 15 unités ont été facturés sur des commandes D0 (appartenant donc au marché rouge).


L'idée est donc d'obtenir un tableau de la sorte :


MarchéQuantitéHeures travaillées
Rouge84,815
Vert59,60
Bleu785


J'ai donc un problème de boucle puisque les bases "Pointage" et "Facturation" sont liées par le paramètre Date, les bases "Pointage" et "Matrice" sont liées par le paramètre Marché et enfin les bases "Matrice" et "Facturation" sont liées par la paramètre type de commande.

Ci-joint le qvw

merci de votre aide

Guillaume

Labels (1)
1 Solution

Accepted Solutions
puttemans
Specialist
Specialist

Hello Guillaume,

Then this should be much closer 🙂

View solution in original post

20 Replies
guillaume_gorli
Creator II
Creator II
Author

Pas d'idée ? personne ?

Anonymous
Not applicable

sans doute revoir le modèle relationnel,

qualifier les dates, date_facture, date_ pointage

je suis sur que la table Facturation est pleine de date dans rien d'autres...

faire des load avec des where exist

puttemans
Specialist
Specialist

Bonjour Guillaume,

Intégrer la base Matrice dans la base Facturation ou Pointage (ou seulement l'information voulue) avec des mapping tables. Ensuite, afin d'éviter des synthetic keys, créer une variable unique dans les deux matrices qui vous restent, ou bien renommer tous les variables au nom identique sauf 1.

guillaume_gorli
Creator II
Creator II
Author

Merci messieurs, je vais essayer tout ça.

almamy_diaby
Creator
Creator

Bonjour,

Il faut juste envoyer les données de MATRICE dans POINTAGE.

Ensuite je voudrais te dire qu'il y ait boucle ou pas la bonne pratique chez qlikview est de faire en sorte que les tables qui contiennent au plus deux champs doivent être envoyer par  applymap dans les tables auxquelles elles sont reliées.

Recharge tout simplement l'application jointe pour prendre en compte les modifications que j'ai apportées au script.

guillaume_gorli
Creator II
Creator II
Author

Bonsoir Almamy,

je comprend votre logique à savoir supprimer la table matrice et la remplacer par "une sorte de vlookup" dans la table Pointage. C'est ce qui semble être la fonction applymap.

Néanmoins deux questions/interrogations :

pourquoi utiliser la fonction trim dans la script ?

Malgré vos modifications directement dans le script la variable "marché" ne semble toujours pas relié à la variable "Qté". Je n'arrive pas à lier ces deux variables dans un tableau simple.

Merci

almamy_diaby
Creator
Creator

Bonjour,

le trim est mis pour supprimer les espaces. je l'ai utilisé parce que "marché" est la clé entre pointage et matrice.


le problème avec la "Qté" est qu'avec ma modification tu 2 clés (date et type cde).  date de facturation est-elle   la même que date pointage au point de constituer une clé?

s'il te plaît post l'application modifiée pour que j'ai une idée.

Cordialement,

guillaume_gorli
Creator II
Creator II
Author

Almamy,

Voici l'application initiale, l'application que tu as modifié et le fichier des données.

Guillaume

puttemans
Specialist
Specialist

Bonjour Guillaume,

Il me semble que la boucle n'a pas été résolu.