Bonjour à tous,
je reviens vers vous avec mes casses-tête,
j'ai besoin de vos HELP :
j'ai une table sous forme :
ici, la manipulation commence à partir de la ligne ou j'ai obtenu 0 dans cumul_montant , ici c'est sequence =18.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ___montant_trans____cumul_montant__sequence | 24213,43 | -4412,49 | 17 | 4412,49 | 0 | 18 | -33948,97 | -33948,97 | 19 | 871,19 | -33077,78 | 20 | -34829,44 | -67907,22 | 21 | 33077,78 | -21584,27 | 22 | 13245,17 | -21584,27 | 22
donc NOMBRE_INITIAL = 18
pour montant_trans j'ai des valeurs positives et d'autres négatives, la manipulation se fait sur celles positives par rapport aux négatives de la manière suivante:
je doit sommer les montant_trans positives jusqu’à atteindre la première valeur négative après 18, c.à.d :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select * from this_table where sequence > 18 and montant_trans >0 ...
je somme 871,19 + 33077,78 = valeur absolue(-34829,44 )
une fois atteindre la 1ere valeur négative après 18
je réinitialise NOMBRE_INITIAL il devient dans ce cas 21
même traitement pour ce nombre, mais dans ce cas on prend pas en considération les nombres déjà utilisés dans la sommes précédente (ici c'est 33077,78 ).
donc
13245,17+ rien <> valeur absolue(-34829,44) on fait rien...
on retourne ici 21 et on quitte.
j'espère que j'étais clair avec vous
qu'est ce que dois-je utiliser? un curseur?
je comptes sur vos habituelles collaborations.
Partager