Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Валюта и N документа в таблице фактов / 4 сообщений из 4, страница 1 из 1
06.10.2003, 15:54
    #32285285
Гулин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валюта и N документа в таблице фактов
Есть DW отгрузка по моделям : (пока набор DBF баз : схема - звезда
время , регион , вид , контракт , отгрузка -ТФ )

зерно таблицы фактов (ТФ) :
кол-во отгруженное по модели по документу ( без Roll-Up)
Сумма в USD , Цена в ВАЛ , Сумма в ВАЛ

1? Так как часто интересует именно валюта док-та -
Т.е. получается что ВАЛЮТУ надо выносить в отдельную размерность
а в клиентской части контролировать чтобы не подбивались
Сумма в ВАЛ без ВАЛ. ?

2? N документа хочу в ТФ
Не хочется делать отдельную размерность по документам
( их много 1/8 от ТФ ) но при этом надо всегда иметь возможность
( узнать номера документов ) как поступают ?

P.S Если кто-то может поделиться общими рекомендациями по DW отгрузке
напишите.
...
Рейтинг: 0 / 0
06.10.2003, 16:11
    #32285314
Jurii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валюта и N документа в таблице фактов
Я в подобных случаях делаю виртуальную вьюшку на основе DBF-баз, на основе этой вьюшки - создаю куб, и настраиваю обратную навигацию, открывая из сегмента куба эту вьюшку с автоматической передачей фильтра (DrillThrough). Так решается задача с номерами документов.
Что касается валюты - можно делать либо по одной мере для каждой валюты, либо выносить название валюты в отдельное измерение, либо хранить в модели куба справочник пересчета валют.

P.S. Все вышесказанное относится к функциональности OLAP-сервера Cognos PowerPlay (у других OLAP-серверов часть подобной функциональности может отсутствовать).
...
Рейтинг: 0 / 0
07.10.2003, 09:53
    #32285805
GoodLeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валюта и N документа в таблице фактов
Если речь идёт о реализации в MS AS, то чудес лучше не ожидать.
Нужна детализация по номерам документов - делай измерение с номерами документов. Только это существенно увеличивает время процессинга куба.
Если действительно нужно смотреть, в какой валюте была продажа в документе, то делай валюту отдельным измерением. Тогда итоги автоматически не будут суммировать разновалютные суммы. Но и тогда ты не сможешь получить общую сумму в единой валюте.
Хотя в принципе можно, если будешь для каждой валюты дублировать записи в таблице фактов суммы движения. Но, опять же в этом случае у тебя увеличивается количество строк ТФ (кол строк*кол валют) и ты теряшь возможность проанализировать уникальность связей валюта - документ, потому что получается что у тебя по всем документам имеются суммы во всех валютах.
Можно сделать и по другому.
Например:
1. в ТФ, под каждую валюту ты делаешь отдельную колонку движения денег и для каждого документа, записываешь движения в соответсвующую колонку + всегда рассчитываешь и записываешь движение в единой валюте, например в рублях, что бы получить итоги по всем движениям.
2. Делаешь отдельную таблицу измерений, в которой перечисляешь наименования валют. Причем наименования валют должны символ в символ совпадать с наименования соответсвующих колонок движений денег в ТФ.
3. Строишь по этой таблице измерений:
3.1. Shared измерение, скажем "ВалютаПродаж"
3.2.Куб "Валюта" которое содержит только измерение "ВалютаПродаж" измерение.
4. Строишь по таблице фактов куб, скажем "Продажи".
5. Создаёшь виртуальный куб, скажем "Продажи_Виртуальный", который включает в себя:
- куб "Продажи" со всеми мерами и измерениями
- куб "Валюта" со всеми мерами и измерениями (т.е. по сути только с измрением "ВалютаПродаж")
6. В итоге, в кубах "Продажи" и "Продажи_Виртуальный" у тебя есть для каждой валюты отдельная мера. Пользователю будем отображать не все эти меры, а поле СМ, в которое будем подставлять значение из нужных мер валют. Нужную меру определяем по выбору пользователем члена измерения "ВалютаПродаж".
Формула СМ, в которую будет смотреть пользователь очень проста:
strToMember("[Measures].[ВалютаПродаж].CurrentMember.name")

Плюсом такого подхода является то что не увеличивается количество строк (т.е. под каждую валютту не дублируется строка).

В итоге, если в таблицу клиента ты поместишь измерение номера документа и выберешь в измерении "ВалютаПродаж" не единую валюту, то в таблице останутся только строки тех документов, по которым была продажа в данной валюте и итоги тоже посчитаются правильно.
Конечно же при таком подходе ты не сможешь помещать в табличную часть измерение "ВалютаПродаж".
...
Рейтинг: 0 / 0
07.10.2003, 15:01
    #32286376
Quark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валюта и N документа в таблице фактов
Можешь еще так попробовать:

Если не заморачиваться с DrillTrougth(хотя для просмотра номера дока, это лучший вариант). Можно сделать номер дока как листья в иерархии дат.
А в таблице фактов создать поле - валюта, и сделать calculated member на основе member properties который либо показывает валюту если пользователь развернул до документа, либо показывает пусто если пользователь смотрит скажем за год.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Валюта и N документа в таблице фактов / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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