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