Bonjour à tous,
je voudrais savoir s'il était possible de créer un script sous postgresql qui permettrait de lire les données d'une table et d'en faire un cumul pour mettre à jour un champ d'une autre ligne de cette table.
Plus précisément, dans cette table mes contiennent un champ type_ligne qui peut prendre les valeurs (1,2,3,4,5).
par exemple :
id, code, type_ligne, montant
1 , AAA , 2 , 0
2 , AAA , 4 , 10
3 , AAA , 5 , 23
4 , AAA , 4 , 16
5 , AAA , 5 , 45
6 , AAA , 2 , 0
7 , AAA , 3 , 27
8 , AAA , 3 , 11
8 , AAA , 1 , 10
9 , BBB , 1 , 42
etc...
Je voudrais mettre à jour toutes les lignes ayant pour "type_ligne" = 2 par le cumul des types ligne 3,4,5 celle qui se suivent uniquement jusqu'à rencontrer un type ligne différent de (3,4,5). Après calcul, ces lignes doivent être effacées !
C'est-à- dire que après le passage du script mon tableau doit ressembler à ça :
code, type_ligne, montant
1 , AAA , 2 , 94 ====> (94=10+23+16+45)
6 , AAA , 2 , 38 ====> (38 = 27+11)
8 , AAA , 1 , 10
9 , BBB , 1 , 42
etc...
J'ai essayé d'utiliser sum() mais il me prend toutes les lignes, ce n'est pas ce que je veux.
Est-ce que c'est possible d'utiliser un WHILE ? Quelle serait la syntaxe ?
Je vous remercie par avance.
Partager