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 :
voilà les données en base avant update :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
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
Partager