Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Очень серьезный вопрос. Представим, что есть fact_table и она связанна с тремя дименшионами. Два из которых важные, третье может учавствовать в запросе или не учавствоать. Главные: Projects and Regions. Второстепенное фильтр: Profile_DW Скажем так, я хочу получить значение measurement для Region для определенного Project select non empty { [Regions_DW].[All Regions_DW].children } on 0 from Region_CUBE where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] ) Идеально хочу получить : Russia = 2 Но в реальности получаю : Russia = 6 Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2. Но, эта запись одновременно принадлежит еще трем Profiles. Profiles _ это как дополнительный фильтр, если он выставлен, то я пишу: select non empty { [Regions_DW].[All Regions_DW].children } on 0 from Region_CUBE where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] , [Focus_DW].[All Focus_DW].[50] ) Но когда он не выставлен, мне вообще он не нужен, не нужна связь Profiles c fact_article, потому что в этом случа он все портит. – данный умножаются на количество вхождений в дименшион Profiles. Как можно “отключить” дименшион Profiles когда он не нужен ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2004, 15:02 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
McLuadВсем привет. Очень серьезный вопрос. Представим, что есть fact_table и она связанна с тремя дименшионами. Два из которых важные, третье может учавствовать в запросе или не учавствоать. Главные: Projects and Regions. Второстепенное фильтр: Profile_DW Скажем так, я хочу получить значение measurement для Region для определенного Project select non empty { [Regions_DW].[All Regions_DW].children } on 0 from Region_CUBE where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] ) Идеально хочу получить : Russia = 2 Но в реальности получаю : Russia = 6 Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2. Но, эта запись одновременно принадлежит еще трем Profiles. Profiles _ это как дополнительный фильтр, если он выставлен, то я пишу: select non empty { [Regions_DW].[All Regions_DW].children } on 0 from Region_CUBE where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] , [Focus_DW].[All Focus_DW].[50] ) Но когда он не выставлен, мне вообще он не нужен, не нужна связь Profiles c fact_article, потому что в этом случа он все портит. – данный умножаются на количество вхождений в дименшион Profiles. Как можно “отключить” дименшион Profiles когда он не нужен ? Было бы гораздо проще помочь вам если бы вы ваши таблички назывались так же как измерения, а таблице фактов показывались, только относящиеся к обсуждению поля. А то как то неловко додумывать, какая таблица скрывается за Focus_DW. У вас связи по полям являющимся ключами листового уровня измерений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 10:39 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
указать Default Member для Focus_DW. либо делать два куба: с Focus_DW и без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 10:39 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukovлибо делать два куба: с Focus_DW и без. А как переключаться посоветуете? А если таблица фактов N-Гигов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 10:44 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
backfire Dmitry Biryukovлибо делать два куба: с Focus_DW и без. А как переключаться посоветуете? А если таблица фактов N-Гигов? я так понял запрос формируется динамически... так и писать strMDX = strMDX + " FROM " + strProperCubeName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 10:50 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukovуказать Default Member для Focus_DW. либо делать два куба: с Focus_DW и без. Привет всем. Короче ситуация горела, надо было срочно проект здавать. В первый день увидел что никто не ответил, так больше и не смотрел, только сегодня снова зашел на форум, увидел что есть ответы, спасибо всем. Сделал так как описывал Дмитрий, два куба, один содержит Focus другой нет. На большее фантазии на хватило, но может и другово решения не было. Всем спасибо за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 11:24 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что просто в измерении Profile_DW не должно быть общего итога (т.е. члена All Profile_DW), тогда и суммирования происходить не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 08:17 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
БеляевМне кажется, что просто в измерении Profile_DW не должно быть общего итога (т.е. члена All Profile_DW), тогда и суммирования происходить не будет Это предвычесленного агрегатного значения не будет, а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения. Если же в MDX не указывать Profile_DW, то результат будет расчитываться исходя из default member. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 10:16 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukov а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения. Это как? Что то мне это трудно представить, что в измерении без AllLevel какой то клиент сгенерит MDX для его получения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 10:27 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Суммирование - это проблема клиента (в Excel можно отключить итог по строкам, столбцам), а default member - ну уж сделайте тогда какой-то допустим: Profile_DW - "неизвестно" или "не установлено" и сгрузите в него всю копию исходных данных PS Хотя проблема у Вас конечно же в дизайне, надо предметную область тщательнее проанализировать: определить есть ли зависимость между измерениями отношения "многие ко многим" надо устранять (тем более они не поддерживаются в текущей версии AS), алгоритм устранения - известен (новое измерение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 11:26 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
backfire Dmitry Biryukov а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения. Это как? Что то мне это трудно представить, что в измерении без AllLevel какой то клиент сгенерит MDX для его получения Элементарно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:10 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Тема аггрегирования элементов у которых нет All - мне очень близка, я прямо сейчас меняю код функции Aggregate в Юконе, и мы тут спорим - разрешать ли вообще Aggregate по non-aggregatable аттрибутам (т.е. по уровню над которым нет All). Пример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :) С другой стороны, может ошибку поднимать в этом случае как-то слишком жестоко. Ну во всяком случае, следующей версии Excel мы советуем, чтобы они даже в UI такого не разрешали, чтобы пользователей не путать... Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:26 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Однозначно разрешать! а то потом в форуме получите кучу вопросов типа "как сложить мемберов у которых нет AllLevel?". как вариант сделать это опцией, выключенной по умолчанию. имхо, наличие уровня All - это одно, а суммирование мемберов этого измерения - совсем другое. представим такой надуманный пример. Товары: уровень1 - те, которые измеряются в штуках - те, которые измеряются в литрах - те, которые измеряются в метрах уровень2 - собственно сам товар. Сумма на уровне ALL смысла не имеет. Но, тем не менее, я хочу суммировать мемберов нижнего уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 13:09 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
как все запущено ... неужели в MS вопросы проектирования решаются на этапе кодирования 3-ей беты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 13:17 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
MoshaПример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :) Пример взят из Фудмарта :-) там в измерении Category есть уровень ALL, и в кубе Budget суммируется Forecat и Actual ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 13:20 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
MoshaТема аггрегирования элементов у которых нет All - мне очень близка, я прямо сейчас меняю код функции Aggregate в Юконе, и мы тут спорим - разрешать ли вообще Aggregate по non-aggregatable аттрибутам (т.е. по уровню над которым нет All). Пример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :) С другой стороны, может ошибку поднимать в этом случае как-то слишком жестоко. Ну во всяком случае, следующей версии Excel мы советуем, чтобы они даже в UI такого не разрешали, чтобы пользователей не путать... Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights Решать от смысле аггрегации, на уровне MDX, уровня, над которым нет ALL может только автор куба, все остальное - спекуляции. Если это запретить в Excel - лично мне по барабану. (хотя "детям спички не игрушка" :-)) Если это запретить в MDX - это пожалуйста не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 14:17 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Да ребята послушаеш Вас плакать хочеться, а как же один ко многим??? Вот от сюда все и проблемы что когда кубик делаем непонимаем что строиться затпрос на inner join table. Вот твои поля Profiles_ ее умножают на три вот тебе и 6. А когда говориш ему конткретно какой профиль он тебе даст 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 16:26 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
backfireРешать от смысле аггрегации, на уровне MDX, уровня, над которым нет ALL может только автор куба, все остальное - спекуляции. Ну и я говорю что автор куба - если не сделал All level - значит не хочет чтобы аггрегировали. Dmitry BiryukovСумма на уровне ALL смысла не имеет. Но, тем не менее, я хочу суммировать мемберов нижнего уровня Вопрос стоял только об аггрегировании элементов верхнего уровня, для которых аггрегирование не имеет смысла - элементы нижних уровней конечно можно будет аггрегировать. backfireЕсли это запретить в MDX - это пожалуйста не надо. olapistкак все запущено ... неужели в MS вопросы проектирования решаются на этапе кодирования 3-ей беты Собственно можно и не менять и не заниматься проектированием в конце Бета 3, просто мы сейчас работает над производительностью, и есть возможность сильно улучшить производительность Aggregate (и всех кто на нее опирается, т.е. VisualTotals и т.д.), но за счет некоторых изменений функциональности. Но пока кроме меня никто не захотел менять, так что наверное придется как нибудь изворачиваться чтобы и производительность поднять и функциональность не сломать :) Еще один вопрос - а кто-нибудь делал когда нибудь Aggregate по measures ? И если да, то зачем ? Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 21:59 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Mosha Еще один вопрос - а кто-нибудь делал когда нибудь Aggregate по measures ? И если да, то зачем ? Моша, я бы на Вашем месте не спрашивал, я бы запретил Aggregate по measures (ну кому надо складывать метры с баксами), если бы это давало шанс выжать пару-тройку лишних лошадок из движка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2004, 00:34 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
OLAPMASTERДа ребята послушаеш Вас плакать хочеться, а как же один ко многим??? Вот от сюда все и проблемы что когда кубик делаем непонимаем что строиться затпрос на inner join table. Вот твои поля Profiles_ ее умножают на три вот тебе и 6. А когда говориш ему конткретно какой профиль он тебе даст 2. В принципе это понимаем. Другое дело что это не совсем нравится. Было бы идеально, если бы наряду с (All) или (All_Profiles) был бы некий виртуальный мембер типа (None) или (None_Profile) который бы интерпретировался следующим образом: при его использовании во фразе Where например, соответсвующий dimension вообще бы отрубался и не использовался при расчетах. По аналогии с inner join равнозначно исключению соответсвующей таблицы из главного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 10:19 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Сказали же: этот "виртуальный" мембер называется Default Member. В данном случае его можно сделать любым кроме ALL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 12:29 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Dmitry BiryukovСказали же: этот "виртуальный" мембер называется Default Member. В данном случае его можно сделать любым кроме ALL Мне не нужно делать его любым. Любым - значит каким-то. Скажем я удалил default member и поставил All Level - No. Типа значит никакой default member. Но запрос теперь вообще ничего не возращает. То есть видимо он по прежнему делает join на dimension Profile, но так как нет связи вообще никакой, результирующий запрос ничего не возращает. Мне же нужно что-бы join вообще не делался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 13:37 |
|
||
|
Динамически отключить dimension в MDX запросе ?
|
|||
|---|---|---|---|
|
#18+
Позволю себе вернуться к началу обсуждения и усомниться в том, что: McLuadИдеально хочу получить : Russia = 2 Но в реальности получаю : Russia = 6 Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2. Но, эта запись одновременно принадлежит еще трем Profiles. ... Как можно "отключить" дименшион Profiles когда он не нужен ?У вас в таблице фактов, очевидно, 3 записи по региону Russia и проекту 5999 (" эта запись одновременно принадлежит еще трем Profiles ") Так что никакое "отключение" этого измерения Profiles , равно как и создание куба без него (по оригинальной таблице фактов), не поможет. McLuadСкажем я удалил default member и поставил All Level - No. Типа значит никакой default member.У измерения не может не существать default member (как иначе будет отрабатывать запрос?) -- по умолчанию это либо элемент All , либо (если уровень All отсутствует) первый по порядку элемент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32832111&tid=1871967]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 423ms |

| 0 / 0 |
