Bonjour,

Je suis sur Firebird 2.5

Je souhaite faire la moyenne glissante d'une colonne QT sur les 3 dernières dates inf ou égal DateDiff

La table contient 3 colonnes :
Code, DateDiff, QT
15 02.01.2014 25
15 03.01.2014 135
15 04.01.2014 35
15 07.01.2014 19
15 09.01.2014 39
15 10.01.2014 50
15 13.01.2014 40
15 14.01.2014 54

J'ai une procédure stockée qui réalise le calcul de la moyenne, elle fonctionne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ALTER PROCEDURE AVG_3JOURS_QT (
    DATEJOUR Date )
RETURNS (
    AVG_QT Integer )
AS
BEGIN
  for
   SELECT AVG(QT) from
    (SELECT QT
     FROM DIFF a
     WHERE Code = '15'
     and DATEDIFF <= :DATEJOUR
     order by Datediff desc
     ROWS 1 to 3)
   into :AVG_QT do
  suspend;
END^
Je souhaite faire appel à la procédure, pour obtenir pour chaque datediff la moyenne sur 3 jours

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SELECT a.DateDiff, a.QT, p.AVG_QT
FROM DIFF a, AVG_3JOURS_QT(a.DateDiff) p
J'obtiens ce message d'erreur : "no current record for fecth operation"

Alors que je m'attends à ça :

DateDiff, QT AVG_QT
02.01.2014 25 25 = AVG(25,0,0)
03.01.2014 135 80 = AVG(135,25,0)
04.01.2014 35 65 = AVG(35,135,25)
07.01.2014 19 63 = AVG(19,35,135)
09.01.2014 39 31 = AVG(39,19,35)
10.01.2014 50 36 = AVG(50,39,19)
13.01.2014 40 43 = AVG(40,50,39)
14.01.2014 54 48 = AVG(54,40,50)

Pouvez-vous m'aider ?
Merci