Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / oracle express & OFA как рассчитать агригаты? / 8 сообщений из 8, страница 1 из 1
12.09.2005, 22:12
    #33265145
forsit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
Как рассчитать агрегаты финансового элемента заданного в виде формулы?

Пример:
Есть финансовые элементы
количество (время продукция склад)
цена (время продукция)
Сумма = количество * цена
Как рассчитать агрегаты по элементу сумма?
...
Рейтинг: 0 / 0
13.09.2005, 14:44
    #33266480
oracle express & OFA как рассчитать агригаты?
А сумму в переменной держать нельзя?
...
Рейтинг: 0 / 0
13.09.2005, 16:12
    #33266845
Alexs7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
В OFA это делается с помощью моделей (model), в которых определяются формулы расчета и вычислений (solve) в которых выбираются модель, срезы данных, иерархии для агрегации.
...
Рейтинг: 0 / 0
13.09.2005, 22:05
    #33267516
forsit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
Дык и проблемы в том, что для финансового элемента заданного в виде ВЫЧИСЛЯЕМОЙ формулы(не хранимой) невозможно построить модель.
А rollup тоже нельзя применить.
...
Рейтинг: 0 / 0
14.09.2005, 15:47
    #33269392
EvgeniyM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
Можно попробовать следующий вариант (хотя, imho, извращение это будет страшное:))
В формуле для суммы не забиваем кол*цена, а сслылаемся на некую экспрессовскую программу, в которой обсчитываем сумму уже так, как нам надо. Для листовых значений измерений возвращаем просто кол*цена, для групповых - расчитываем итоги каким-то образом. Можно простым перебором подчиненных, можно попытаться как-нибудь агрегацию применить. Если иерархий несколько, нужно будет туда передавать нужную. Только внутри этой проги лучше не ссылаться на саму это формулу, а брать данные из исходных переменных. Но вообще при приличных объемах данных это дело будет при открытии отчета страшно тормозить. Лучше, действительно, держать сумму в переменной и пересчитывать при изменении исходных переменных.
...
Рейтинг: 0 / 0
14.09.2005, 17:52
    #33269748
forsit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
EvgeniyMМожно попробовать.....
Печальную весть ты принес. Тогда действительно легче все переделать на хранимых финансовых элементах.

Спасибо.

Но если у кого будет предложение как это сделать - очень прошу написать :
...
Рейтинг: 0 / 0
14.09.2005, 18:47
    #33269857
Георгий Т.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
Тот страшный вариант, что предложил Женя, на самом деле вполне безобиден. Привожу возможную реализацию. Описываю для простоты в терминах чистого Express. Детально не тестировал, но должно работать правильно.

Создаём каким-либо образом объекты:

DIM1, DIM2 - DIMENSION TEXT
MyPrice, MyCount - VARIABLE DECIMAL <DIM1 DIM2>
PRG1 - PROGRAM DECIMAL
MySum - FORMULA DECIMAL <DIM1 DIM2>


содержимое формулы MySum:
Код: plaintext
PRG1

содержимое программы PRG1:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
tempstat dim1
do
  lmt dim1 to dim1(dim1 dim1)
  lmt dim1 to children ifnone _mult
  return total(MySum dim2)
  _mult:
  return MyPrice*MyCount
doend

Это всего лишь пример. Предполагается, что все кубики двумерные и что у измерения DIM1 есть иерархия, вокруг которой всё и проистекает. Если иерархии есть более чем у одного измерения, то надо придумывать что-то посолиднее. В случае более чем двух измерений (но с одной иерархией) подход не меняется (немного по-другому функцию total применим).

На гигантских объёмах работать быстро не должно (согласен с автором идеи).

Извините за неровный почерк :)
...
Рейтинг: 0 / 0
14.09.2005, 23:02
    #33270085
forsit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle express & OFA как рассчитать агригаты?
Реальные кубики имеют несколько размерностей в каждой из которых несколько иерархии, так что формула выйдет очень развесистой :) . В моем конкретном случае наверное все таки лучше сделать хранимые кубы.
Но принцип я понял. Спасибо.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / oracle express & OFA как рассчитать агригаты? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]