Select sur une table + procedure stockée
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:
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:
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