без данных примера; Я предполагаю, что у вас есть 1 строка на дату, и закрытие может быть закрытой розничной стоимостью или что-то для магазина?
Можете ли вы достичь того, что вы хотите, делая это;
- Добавьте средний столбец к вашей таблице - я сделал его 9,2 десятичным;
ALTER TABLE STOCKDB
ADD COLUMN MA DEC (9 , 2) NOT NULL WITH DEFAULT;
- Обновите вашу таблицу, добавив средние значения в этот столбец;
UPDATE STOCKDB B
SET MA = (SELECT XMA
FROM (
SELECT "DATE",AVG("CLOSE")
OVER (ORDER BY "DATE" ROWS
BETWEEN 29 PRECEDING AND CURRENT ROW) XMA
FROM RAKELLR/STOCKDB) Z
WHERE Z."DATE" = B."DATE")
Таким образом, вы строите свою дату и средние значения в таблице «Z» - вызывая строку среднего значения XMA;
SELECT "DATE",AVG("CLOSE")
OVER (ORDER BY "DATE" ROWS
BETWEEN 29 PRECEDING AND CURRENT ROW) XMA
FROM STOCKDB) Z;
Затем вы обновите свою таблицу STOCKDB, установив для столбца MA значение = XMA, где совпадает дата;
UPDATE STOCKDB B
SET MA = (SELECT XMA
FROM (...Z...)
WHERE Z."DATE" = B."DATE");