powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Знатокам MDX. Как зделать так ....?
18 сообщений из 18, страница 1 из 1
Знатокам MDX. Как зделать так ....?
    #32580030
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть Set, например

{
[Time].[2004].[H2].[Q3],
[Time].[2004].[H1].[Q1].[M1], -- в сете есть непрямой родитель
[Time].[2004].[H1].[Q2], -- в сете прямой родитель
[Time].[2004].[H1].[Q2].[M4], -- в сете прямой родитель
[Time].[2004].[H1],
}

средствами MDX надо получить на выходе

{
[Time].[2004].[H2].[Q3],
[Time].[2004].[H1],
}

т.е. исключить все элементы, для которых в данном сете уже есть родители (предки)
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32580162
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сам кое что придумал

Код: plaintext
filter(set0, count(intersect(except(ascendants(set0.Current.Item( 0 )), {set0.Current.Item( 0 )}),set0))= 0 )
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32580165
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я кажется паралельно что-то похожее придумала:)

with set s1 as '{[Time].[1997].[Q1], [Time].[1997].[Q1].[1], [Time].[1997].[Q2]}'

select

filter (s1, Intersect(s1,Except( Ascendants(Time.CurrentMember), {Time.CurrentMEmber},ALL)).Count =0 )


on 0 from sales

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32580181
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Ирина.

Реальная задача более сложна, т.к. ее необходимо решить для Set, состоящего не из элементарных членов измерения, а из Tuples

Из

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
{
 ([Time].[ 2004 ].[H2].[Q3], [Scenario].[PlanA])
 ([Time].[ 2004 ].[H1].[Q1].[M1], [Scenario].[PlanA]),   
 ([Time].[ 2004 ].[H1].[Q2],[Scenario].[Ist]),   -- has a "supertuple" in the set
 
 ([Time].[ 2004 ].[H1].[Q2].[M4],[Scenario].[Ist]),   -- has a "supertuple" in the set
 
 ([Time].[ 2004 ].[H1],[Scenario].[Ist]),
}

необходимо получить

Код: plaintext
1.
2.
3.
4.
{
 ([Time].[ 2004 ].[H2].[Q3], [Scenario].[PlanA])
 ([Time].[ 2004 ].[H1].[Q1].[M1], [Scenario].[PlanA]),   
 ([Time].[ 2004 ].[H1],[Scenario].[Ist]),
}
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32580219
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A tuples всегда из одних и тех же измерений и одинаковой структуры? И убираем родителей только по одному из членов тупла или по-обоим?

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32580564
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИринаA tuples всегда из одних и тех же измерений и одинаковой структуры?

Конечно, а то как бы мы их в один сет поместить могли.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582080
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имела в виду, что структура сета известна заранее и всегда одинакова или вы не знаете заранее какой будет сет. А на второй вопрос Вы так и не ответили, наверно задача уже решена?
Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582091
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне заранее известно что в туплах

1.й элеметн всегда с одного из измерений времени, которое иерархично (все-год-полугодие-квартал-месяц)
2.й элемент из плоского измерения сценарий
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582113
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда и Ваш и мой примеры работают нормально.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582150
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИринаТогда и Ваш и мой примеры работают нормально.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights


А вы проверяли оба и самолично? У меня они выдают ошибку, ибо нарушается синтаксис INTERSECT

А работает вот так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
FILTER(set0, 
  COUNT(
    INTERSECT(
      CROSSJOIN(
        EXCEPT(ASCENDANTS(set0.CURRENT.Item( 0 )), {set0.CURRENT.Item( 0 )}),
        {set0.CURRENT.Item( 1 )}),
      set0)
  )= 0 
)
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582164
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второй не проверяла-у меня дома только на одном компьютере AS стоит.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582175
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Второй не проверяла-у меня дома только на одном компьютере AS стоит.

А что, чтобы второй вариант проверить надо второй компьютер?
И потом, Вы что сегодня выходная? Иль праздник какой в Америке?
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582253
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2backfire. Такое ощущение, что вы платите Ирине $1000/h и недовольны оказанным сапортом. :)
Мне показалось что само то что эксперт из Microsoft тратит на этот вопрос время позволяет быть чуточку мягче. :)

По вопросу. Нельзяли пояснить для какой практической задачи вы хотите применить данный MDX-запрос? Чисто академическую задачу не интересно решать.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582276
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Иванов2backfire. Такое ощущение, что вы платите Ирине $1000/h и недовольны оказанным сапортом. :)
Мне показалось что само то что эксперт из Microsoft тратит на этот вопрос время позволяет быть чуточку мягче. :)

По вопросу. Нельзяли пояснить для какой практической задачи вы хотите применить данный MDX-запрос? Чисто академическую задачу не интересно решать.

Владимир, Вы наверное забыли, что здесь не горячая линия поддержки, а свободный форум, без орденов, званий и почасовых ставок (почти как в бане).
Так что ваше замечание я нахожу неуместным.

Замечу, что на свои вопросы, я отвечал сам. На первый Ирина ответила после меня, а на второй ответила неправильно.

Конечно задача возникла не от ковыряния в носу и не ради диссера. А конкретный практический интерес я предлагаю в обмен на вашу брошурку в электронном виде.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582280
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2backfire. Тем не менее, все же как-то резкова-то. Конечно чуствовать себя в одной бане с Ириной может оно и не плохо. Как минимум мечтать не вредно. :)
Что касается орденов, работа в Microsoft это уже орден от груди до колен. Мне часто приходится взаимодействовать с коллегами из Microsoft Russia. Мое мнение, что там дураков не держат и все профессионалы весьма высокого уровня.

Я так не понял, что за практическую задачу мы хотим решить. Тем более не понял как вам может помочь моя книжка. Там не такой задачи, либо она решена другим методом, но без проблемной постановки это не понять. Книжка проблемно-ориентированная, где MDX на самоцель, а инструмент решения бизнес-задач. БИЗНЕС следует читать впереди MDX.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582292
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем не менее, все же как-то резкова-то.
Ну что же вы все за Ирину заступаетсь. У нее с чуством юмора все впорядке и за себя она может сама словечеко замолвить.

/topic/93558&hl=#684020

Владимир, взгляните на 2 хорошо вам извесные формулы

Код: plaintext
sum(PeriodsToDate([Time].CurrentMember, [Time].[(All)]), [Measures].[Quantity])

и

Код: plaintext
sum(Ascendants([Time].CurrentMember),\\n(sum([Time].FirstSibling :[Time].CurrentMember ,[Measures].[Quantity]))-[Measures].[Quantity])+[Measures].[Quantity]

Вот и я в своих изысканиях хочу получить a la "2-й" "летающий" вариант там, где во всех учебниках говорится про "1-й" "ползающий" вариант.

Владимир, вы же физик, и кому как не вам, дожно быть понятно, что абстракция позволяет увидеть общее и найти закономерности. DWH, OLAP, а вместе с ним и MDX одинаково применим во многих отраслях, будь это CRM, SCM, Insurance, налоговый сыск или управление качеством и надежностью сложных технических систем.

Приведя свои проблемы "к банальному FoodMart" я нахожу собеседников на пару порядков больше, кто меня поймет сразу, без дополнительных комментариев.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582294
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется вы пытаетесь сделать оптимизацию, где все достижимо и так просто. Формула 2 и так делает 10 сложений для получения искомого результата. Если добавить спрятанные уровни для получения доп. агрегатов можно еще повысить быстродействие.
...
Рейтинг: 0 / 0
Знатокам MDX. Как зделать так ....?
    #32582296
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ИвановМне кажется вы пытаетесь сделать оптимизацию, где все достижимо и так просто. Формула 2 и так делает 10 сложений для получения искомого результата. Если добавить спрятанные уровни для получения доп. агрегатов можно еще повысить быстродействие.

Я привел эти формулы только как пример оптимального и классического.

Мои же изыскания лежат в другой области и к "расчету остатков" отношения не имеют.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Знатокам MDX. Как зделать так ....?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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