résultat d'un update non attendu
bonjour,
voilà je désire faire un update d'une table pour un champ (ligne i) dont la valeur d'un champ correspond à la somme du même champ de la ligne précédente (ligne i-1) et d'un autre champ (ligne i).
donc en gros SOLDE i = SOLDE i-1 + VALEUR_OPE i
la requête :
Code:
1 2 3 4 5 6 7
| update CALCUL_TEMP as ct0
set ct0.SOLDE = (
ct0.VALEUR_OPE +
(select ct1.SOLDE
from CALCUL_TEMP as ct1
where ct1.ID_CALCUL_TEMP = (ct0.ID_CALCUL_TEMP - 1)))
where ct0.ID_CALCUL_TEMP > 1 |
voilà les données en base avant update :
ID_CALCUL_TEMP VALEUR_OPE SOLDE
1 10.0 10.0
2 10.0 0.0
3 10.0 0.0
4 100.0 0.0
5 10.0 0.0
6 20.0 0.0
7 50.0 0.0
les données après l'update :
ID_CALCUL_TEMP VALEUR_OPE SOLDE
1 10.0 10.0
2 10.0 20.0
3 10.0 20.0
4 100.0 110.0
5 10.0 110.0
6 20.0 30.0
7 50.0 70.0
les valeurs attendues :
ID_CALCUL_TEMP VALEUR_OPE SOLDE
1 10.0 10.0
2 10.0 20.0
3 10.0 30.0
4 100.0 130.0
5 10.0 140.0
6 20.0 160.0
7 50.0 210.0
visiblement elle fait la somme SOLDE i = VALEUR_OPE i-1 + VALEUR_OPE i :roll:
la base est un HSQLDB 1.8 en mode fichier en environnement java 1.6
Si quelqu'un a une idée de la raison