Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
Not applicable

Opérations entre 2 tables : problème clé de référence

Bonjour à tous,

J'ai un petit soucis qui me bloque concernant une opération entre 2 tables. Voici ma situation :

Je charge les comptes de résultats de plusieurs entités de mon entreprise. Chaque table correspond aux chiffres en cumul sur les 12 mois.

Janvier Cumul

Février Cumul

Mars Cumul

Avril Cumul

etc.

J'ai besoin néanmoins d'avoir également les données en Mensuel. Pour avoir le mois d'Avril en mensuel, je fais donc Avril Cumul - Mars Cumul via une clé de référence (Entité / Compte / Produit / Partenaire).

Jusqu'ici aucun blocage au niveau du code. Mais une exception fait que mes chiffres sont parfois faux. En effet, il arrive que sur une période, un montant existe pour une clé de référence donnée, mais que sur la période suivante, ce meme montant n'existe pour cause de correction. J'illustre :

Mars Cumul :

EntitéCompte
ProduitPartenaireMontant
FR-0001P61000XXJF-003A1234,56 €
FR-0001P61000XXQL-112B765,43 €
FR-0002P61000XXFJ-044C23,4 €

Avril Cumul :

EntitéCompte
ProduitPartenaireMontant
FR-0001P61000XXJF-003A2321,56 €
FR-0002P61000XXFJ-044C57,2 €

La clef en gras en Mars cumul n'existe plus en Avril cumul suite à une correction. Le problème est qu'en Avril Mensuel, au lieu d'avoir -765,43€ afin d'annuler l'opération, j'ai 0 ou plutot rien puisque la clef n'est pas retrouvée pour faire la soustraction. Voici mon code :

  IF(isnull(Montant),'0',Montant) - applymap('Map_montant_mars',Entité&'-'&Compte&'-'&Produit&'-'&Partenaire,'0') as Montant_mensuel,

Comment faire pour avoir ma ligne d'annulation sans avoir la même clef d'une table à l'autre ?

Merci par avance

Cordialement,

Jean-François

Tags (1)
2 Replies
christophebrault
Valued Contributor

Re: Opérations entre 2 tables : problème clé de référence

Bonjour,

Si j'ai bien compris ton problème, une solution pourrait être de tester la présence de ta clé d'une table à l'autre, si elle n'existe pas, la rajouter avec le montant négatif du dernier mois afin de revenir à 0.

Penses tu que cette solution soit satisfaisante ?

richard_pressan
Contributor

Re: Opérations entre 2 tables : problème clé de référence

Une solution passant par le script est de rajouter tes enregistrements vides dans tes tables en créant des valeurs NULL.

D'une part, il faut que tu utilise

RIGHT JOIN

LOAD

     tes_dimensions

;

pour rajouter les NULL

D'autre part, il faut que tu recharge ta table temporaire dans une table définitive en remplacant les NULL par des 0, à l'aide de alt( _ , 0 ) :

alt( valeur , 0 ) as valeur

Il serait mieux que tu nous fournisses une capture d'écran de ton schéma de table, si tu veux du code plsu explicite...