Je ne sais pas si cela est possible ou non par le biais d'une requête standard, mais voici comment je voudrais que mes données soient.
START END SETTLE NEW_SETTLE CORRECTION_FACT STORED_SETTLE
1 2 120 NULL 1 120
2 3 127 119 1.0084 128.0668
3 4 NULL 125 1.0245344 NULL
Les calculs sont effectués comme suit :
CORRECTION_FACT
En fait, si NEW SETTLE est nul ou s'il s'agit de la rangée 1, le facteur de correction est toujours égal à 1. Si la rangée > 1, le facteur de correction est égal à PREV ROW STORED_SETTLE / NEW_SETTLE
eg. 120/119
STORED_SETTLE
Ce sera toujours CORRECTION_FACTOR
* SETTLE
. Cette valeur n'est pas connue avant l'insertion de la ligne suivante, il y aura donc des moments où elle sera NULL. La partie délicate est que cela dépend de CORRECTION_FACT
qui est également une valeur calculée et CORRECTION_FACT
dépend de STORED_SETTLE
.
En ce qui concerne les valeurs que j'ai, j'ai SETTLE, NEW_SETTLE, START
y END
. CORRECTION_FACT
y STORED_SETTLE
devra toujours être calculée.
La question est donc de savoir si je peux le faire avec une sorte de requête récursive ou de fonction analytique ou si je dois écrire un script pour le remplir.