Bonjour à tous,
Je viens de passer 4 heures à chercher une solution... please help.
Dans la base de données de ma boite je dois faire une requete utilisant le résultat de calcul de la ligne précédente. Mais sans faire d'agrégation. Je m'explique :
Ma table a cette tête disons
Et qui doit finir avec cette tête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Ligne | prix entree | prix unitaire | stock 1 | 3 | 4 | 2 2 | 7 | 1 | 1 3 | 4 | 3 | 6 4 | 1 | 2 | 5 5 | 9 | 8 | 7
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Ligne | prix entree | prix unitaire | stock | CUMP 1 | 3 | 4 | 2 | 3 (4x0)+3x2/2 (le 0 est du au NULL de la ligne précédente qui n'existe pas) 2 | 7 | 1 | 1 | 10 ((1x3)+7x1)/1 (le 3 est le CUMP de la ligne précédente) 3 | 4 | 3 | 6 | 9 ((3x10)+4x6)/6 (le 10 est le CUMP de la ligne précédente) 4 | 1 | 2 | 5 | 4.8 ((2x9)+1x5)/5 (le 9 est le CUMP de la ligne précédente) 5 | 9 | 8 | 7 | 14.48 ((8x4.8)+9x7)/7 (le 4.8 est le CUMP de la ligne précédente)
J'ai pris un calcul bidon avec des valeurs bidons mais le principe est la. Pas d'agregation, pas de SUM, AVG, MAX, MIN, etc.
J'ai regardé les fonctions LAG, OVER avec PRECEDING, NEXT VALUE... Et je n'y arrive pas
Est-ce que je dois me lancer dans les triggers ? Un jour un prof m'a dit qu'il y a TOUJOURS une autre solution que les triggers.
Merci de votre aide, je vais en avoir besoin !
Partager