Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
22.01.2003, 14:29
|
|||
---|---|---|---|
Способы формирования остатков в OLAP-системе (длинно! :) |
|||
#18+
Привет всем! На эту тему уже вроде писано-переписано (еще на olap.ru), но я свою проблему так и не решил до конца. Тема такая: Есть Склады, на которых хранится Товар. И Дни конечно есть. Нужно в ОЛАП-кубе (MS AS) Иметь возможность видеть остаток по каждому Товару на каждом Складе, и на каждый День. Т.е. - три измерения - День, Склад, Товар. причем остаток нужен не только в штуках, но и в деньгах (т.е. штука умноженная на цену на нужный день). Я на данный момент знаю два способа решения этого вопроса: 1) По таблице фактов, средствами MDX, просто складывая на лету весь приход со всем расходом. Создаем Calculated Member типа SUM(PeriodsToDate([DateYMD].[Yea],[DateYMD].CurrentMember),[Measures].[Штук]) и т.п.. Это - прекрасный вариант, но в моей ситуации он годится только для остатка в штуках, потому что у нас изменения цен товара не сопровождаются какими-либо товарными документами (типа переоценки остатков), и остатки в деньгах посчитать таким способом невозможно. :(. (Цену товара на дату можно узнать только из отдельной таблицы цен). 2) Сделать дополнительную таблицу - с остатками (Дата, Склад, Товар, ОстатокШТ,ОстатокРУБ). Строк в ней будет соответственно Складов*Дней*Товаров. За год у меня получится более 100 млн. строк. Очень много, учитывая, что в таблице фактов (продаж) у меня 3-4 млн. строк в год. И по этой таблице строить куб остатков, который потом соединять с кубом продаж. Это реально, это тоже работает. Но очень громоздко. Мне кажется к концу года остатки я буду считать недопустимо долго. Так вот, других вариантов получения остатков в OLAP я пока не вижу. Может быть есть какие-нибудь еще варианты, идеи, мнения? Буду очень рад выслушать! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.01.2003, 05:50
|
|||
---|---|---|---|
|
|||
Способы формирования остатков в OLAP-системе (длинно! :) |
|||
#18+
Для меня реализация подобной задачи предстоит в будущем. Если честно я не вижу других методов реализации, помимо описанных тобой. А сумму можно посчитать, как мне кажется комбинацией первого варианта, с отдельной таблицей цен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.01.2003, 12:55
|
|||
---|---|---|---|
Способы формирования остатков в OLAP-системе (длинно! :) |
|||
#18+
Построй по этой таблице цен отдельный куб с измерениями Дата, Товар, объедини эти два куба в виртуальный и считай стоимостные остатки там умножением количества на цену. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.01.2003, 21:54
|
|||
---|---|---|---|
Способы формирования остатков в OLAP-системе (длинно! :) |
|||
#18+
Это один из многих отклоненных мною способов...;-) Ведь умножать остаток на цену можно только если я рассматриваю уровень Товар. А чаще всего остатки смотрятся не по товару, а по различным группировкам товара - Поставщикам, категориям. Да или хоть по складам. А на уровне Поставщик, Группа, Склад - цены ведь нету, цена определена только, если текущий уровень Товар. (Поставщик, Группа - это отдельные измерения, НЕ часть иерархии Измерения Товар). В общем, пока другого варианта, кроме отдельной таблицы с остатками я не вижу...:-( ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.01.2003, 13:51
|
|||
---|---|---|---|
Способы формирования остатков в OLAP-системе (длинно! :) |
|||
#18+
Можно сделать для стоимостного остатка calculated member, который будет считать его как сумму количество*цена для всех товаров, являющихся детьми того элемента, который выбран в измерении Товар. Но это, конечно, будет при большом количестве товаров работать медленно. Тут надо смотреть для конкретного случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=49&tablet=1&tid=1873569]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 372ms |
0 / 0 |