Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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) :
J'aimerais compléter les cellules manquantes par le dernier solde connu pour avoir un résultat comme celui-ci :
Je ne vois pas comment faire.
Merci de votre aide
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;
Hi,
try below script
Regards,
Prashant Sangle
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 :
Comment dois-je procéder ?
share sample data
Il faut que tu tries tes données par compte puis par Date.
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;
Super ça fonctionne parfaitement !
Merci beaucoup
Merci beaucoup !