Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.05.2006, 18:31
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
Всем добрый день. Сегодня встала такая, на мой взгляд, довольно интересная задача: Есть измерение. Например GOOD_DIM - товары. В измерении есть две иерархии: 1. Страны производители. 2. Фирмы поставщики. Задача: необходимо получить результат в виде таблицы, где по одной оси идут страны, по другой - фирмы. Вопрос: Как это сделать? :) Скажем для какой-то конкретной ячейки это будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но это не решение. Что если пользователь хочет получить распределение по всем фирмам и странам? Не генерировать же запрос для каждой ячейки! Возможно, кто-нибудь сталкивался с подобной задачей. Также интересно, как подобные ситуации решаются в других OLAP системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 18:38
|
|||
|---|---|---|---|
|
|||
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
Отчёт, конечно, будет дурацкий, будет очень много пустых мест, посколько фирма, по видимому, относится к стране отношением многие к одному (если, конечно, каких-нибудь SCD там не сделано). Но в MicroStrategy проблем не будет - так и покажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 18:40
|
|||
|---|---|---|---|
|
|||
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
То же самое относится и к Cognos PP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 19:25
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
На всякий случай приведу пример: Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Эта таблица определяет измерение "товары". Соответственно есть две иерархии: Страны и Фирмы. В итоге необходимо получить таблицу: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 19:26
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
Виктор СаковичТо же самое относится и к Cognos PP. В Когносе, по-моему, нет такого опрделения как иерархия. Т.е. там вроде сразу измерения строятся. Или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 19:46
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
2 Goster: То же самое относится и к Cognos PP. В Когносе, по-моему, нет такого опрделения как иерархия. Т.е. там вроде сразу измерения строятся. Или я ошибаюсь? Измерения в Cognos PP могут содержать одну или несколько иерархий (альтернативные дрилл-дауны). Если в измерении товаров сделать 2 Ваших иерархии в виде альтернативных дрилл-даунов, то можно будет одну иерархию положить в боковик отчета, а другую - в шапку, и мы получим необходимую Вам кросс-таблицу. P.S. А во время OLAP-тусы в Питере, г-н Birkhoff Вам не рассказывал как решать такие задачи в Oracle OLAP? P.P.S. Надо будет возобновить традицию проведения мероприятия OLAP-туса, последнюю из которых я проводил в Москве в ресторане Красная Площадь дом 1 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2006, 15:48
|
|||
|---|---|---|---|
|
|||
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
По просьбе уважаемого Б. попробовал решить исходную задачу в упрощённом виде на чистом DML. Если глубоко не думать (и не связываться с картами), то получается вот это: Дано. 1. Измерение MYDIM Код: plaintext 1. 2. 3. 4. 5. 6. 2. С двумя иерархиями (Товары-Страны, Товары-Фирмы) Код: plaintext 1. 2. 3. 4. 5. 6. 3. И переменная Код: plaintext 1. Добавляем в AW несколько объектов: 4. Измерения-Алиасы MYCOUNTRY и MYFIRM Код: plaintext 1. 5. Программу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 5*. Либо вот такую программу (смотря что быстрее работает) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 6. Формулу (целевую) Код: plaintext 1. Собственно, всё готово. Тестируем содержимое полученной формулы 7. Устанавливаем статусы (фирмы и страны) Код: plaintext 1. 8. Выводим проверочный отчёт Код: plaintext У меня это корректно работает на тестовой переменной с простыми двухэтажными иерархиями для обоих вариантов программы MYPRG. Подозреваю, что на высоком уровне (там, где всё делается при помощи мышки) всё это попроще. P.S. Похоже, пора мне посмотреть на Когнос ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.05.2006, 10:33
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
2 Георгий Т.: Спасибо, учитель! Знание dml - великая вещь. Пошел читать доку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.06.2006, 18:26
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
2 Георгий Т.: Скажите пожалуйста, а какой смысл здесь имеет выражение Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.06.2006, 19:29
|
|||
|---|---|---|---|
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
Хм... Я понял, что эта конструкция позволяет в программе в формуле определить конкретную итерацию по измерениям. Но не могу найти где она описана и понять как она работает. А есть ли другие варианты получить тот же результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2006, 11:18
|
|||
|---|---|---|---|
|
|||
Кросс иерархий в измернии. Oracle. |
|||
|
#18+
Некоторые вещи про Express/DML не описаны в документации (либо я не знаю где именно). И, конечно, вызов программы из тела формулы - штука по определению медленная на больших объёмах. Надо пробовать другие подходы. Например: по-другому проектировать структуры и иерархии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=49&tablet=1&tid=1870041]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 423ms |

| 0 / 0 |
