Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
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

2 Replies
christophebrault
Specialist
Specialist

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 ?

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
rlp
Creator
Creator

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...