Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Bckaps
Contributor II
Contributor II

Renseigner des valeurs manquantes entre deux dates

Bonjour à tous,

J'ai deux tables :
- une table "calendrier" avec tous les jours de l'année
- une table "relevés de compte" avec un champ date et un champ solde

Quand je "concatenate" les deux tables ça me donne ça (j'ai borné mon calendrier du 1 au 15/09 pour l'exemple) :

Bckaps_0-1698220917025.png

J'aimerais compléter les cellules manquantes par le dernier solde connu pour avoir un résultat comme celui-ci :

Bckaps_1-1698221083674.png

Je ne vois pas comment faire.

Merci de votre aide

1 Solution

Accepted Solutions
vincent_ardiet_
Specialist
Specialist

Comme ceci:

calendar:
Load * Inline [
date
202101
202102
202103
202104
202105
202106
202107
202108
202109
];

facts:
Load * Inline [
date, compte, sales
202101,cpt1,1000
202102,cpt2,1500
202105,cpt1,3000
202106,cpt2,1700
202108,cpt2,3800
202109,cpt1,4000
];

Inner Join (calendar) Load Distinct compte Resident facts;

Left Join (calendar) Load * Resident facts;
Drop Table facts;

Final:
Load date, compte, sales,  
if((IsNull(sales) or sales = 0) and Previous(compte)=compte, Peek(newSales),rangesum(0,sales)) as newSales
resident calendar
order by compte asc,date asc;

Drop Table calendar;

 

 

View solution in original post

7 Replies
PrashantSangle

Hi, 

try below script

calendar:
Load * Inline [
date
202101
202102
202103
202104
202105
202106
202107
202108
202109
];
 
Left Join
 
Load * Inline [
date, sales
202101,1000
202105,3000
202109,4000
];
 
NoConcatenate
Final:
Load date, sales,  
if(IsNull(sales) or sales = 0, peek(newSales),sales) as newSales
 
resident calendar
order by date asc;
 
drop Table calendar;
 
PrashantSangle_0-1698222637834.png

 

Regards,

Prashant Sangle

Great dreamer's dreams never fulfilled, they are always transcended.
Please appreciate our Qlik community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂
Bckaps
Contributor II
Contributor II
Author

Merci pour ton retour. Ta solution fonctionne mais seulement si il y a un seul compte bancaire.

Si j'ai deux comptes et que je vous obtenir ça :

Bckaps_0-1698236837371.png

Comment dois-je procéder ?

PrashantSangle

share sample data

Great dreamer's dreams never fulfilled, they are always transcended.
Please appreciate our Qlik community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂
Dref278
Creator
Creator

Il faut que tu tries tes données par compte puis par Date. 

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)
vincent_ardiet_
Specialist
Specialist

Comme ceci:

calendar:
Load * Inline [
date
202101
202102
202103
202104
202105
202106
202107
202108
202109
];

facts:
Load * Inline [
date, compte, sales
202101,cpt1,1000
202102,cpt2,1500
202105,cpt1,3000
202106,cpt2,1700
202108,cpt2,3800
202109,cpt1,4000
];

Inner Join (calendar) Load Distinct compte Resident facts;

Left Join (calendar) Load * Resident facts;
Drop Table facts;

Final:
Load date, compte, sales,  
if((IsNull(sales) or sales = 0) and Previous(compte)=compte, Peek(newSales),rangesum(0,sales)) as newSales
resident calendar
order by compte asc,date asc;

Drop Table calendar;

 

 

Bckaps
Contributor II
Contributor II
Author

Super ça fonctionne parfaitement !

Merci beaucoup

Bckaps
Contributor II
Contributor II
Author

Merci beaucoup !