Есть таблица (hnull) с начислениями какой-либо величины
за каждый год:
Необходимо без применения PL/SQL посчитать величину начисления нарастающим итогом (growth) в порядке увеличения года (year). При этом если начисление текущего года (val) меньше нарастающего итога предыдущих годов, то этот месяц не вносит свой вклад в нарастающий итог. Т.е. результат будет:
Решение:
SELECT val,
year,
growth
FROM
hnull
MODEL
DIMENSION BY
(YEAR)
MEASURES (val,
0 growth)
RULES(
growth
[YEAR] =
case
when val[cv()]
<
nvl(growth[cv()-1],0)
then
growth[cv()-1]
else
val[cv()] +
nvl(growth[cv()-1],0)
end
)
ORDER
BY YEAR;
Комментариев нет:
Отправить комментарий