powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Сложности с mdx-запросом.
7 сообщений из 7, страница 1 из 1
Сложности с mdx-запросом.
    #33098000
joni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть кубик, для простоты три измерения Товар, Магазин, Тип ассортиментного перечня (АП), одна мера имеющая логический тип, если true значит товар для заданного магазина входит в заданный АП. Хочется получать максимальный тип ассортиментного перечня, в который входит товар для некоторого магазина (или множества магазинов) и что-то ни одной здравой мысли... Если у кого-то есть какие-нибудь идеи буду очень признателен.
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098177
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут, имхо, сложности не с mdx-запросом, а с дизайном. т.к. joniтри измерения Товар, Магазин, Тип ассортиментного перечня (АП), одна мера имеющая логический тип, если true значит товар для заданного магазина входит в заданный АП это описание реляционной таблички
сделайте лучше числовую меру с агрегацией count или SUM и Сalc.Мember: IIF(мера>0,"входит","не входит")
а с максимум может фигня получится, т.к. местами true=-1, а false=0. т.е. максимум - это false
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098205
joni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, видимо, плохо описал ситуацию. Вся проблема состоит в том, что мне максимум нужен не по мере, а по propererties измерения. Тип АП у меня измерение, и мне нужно выбрать максимальный тип АП в который входит товар для заданного магазина. Если бы у типа АП member name был числовым, то я предполагаю, что рботала бы конструкция:
Код: plaintext
max(filter([Тип АП].Members, [Measures].[Is In Assort] = - 1 ))
По крайней мере, количество АП в которые входит товар считается:
Код: plaintext
count(filter([Тип АП].Members, [Measures].[Is In Assort] = - 1 ))
Но мне нужно не количество типов, в которые входит товар, а максимальный код АП. Попробовал сделать calculated member
Код: plaintext
max(filter([Тип АП].Members, [Measures].[Is In Assort] = - 1 ), CDbl([Тип АП].Properties("Key")))
получаю #ERR...
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098244
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может так?
Код: plaintext
1.
max(filter([Тип АП].Members, [Measures].[Is In Assort] = - 1 ), CDbl([Тип АП].CurrentMember.Properties("Key")))
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098260
joni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И так, и так пробовал :)
И выносил
Код: plaintext
CDbl([Тип АП].CurrentMember.Properties("Key"))
в отдельный member в measures, результат неизменный, не может быть, что бы не было способа выбрать не member name по members, а member key. Можно же в запросе указать
Код: plaintext
dimension properties member_key on rows
может можно и в фильтре как-то это как то указать?
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098880
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если вместо cdbl написать val
...
Рейтинг: 0 / 0
Сложности с mdx-запросом.
    #33098943
joni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, разобрался. Я там в измерении Тип АП забыл одноименный уровень.
Код: plaintext
max(filter([Тип АП].[Тип АП].Members, [Measures].[Is In Assort] = - 1 ), CDbl([Тип АП].Properties("Key")))
Вот в таком виде все работает. Все-таки мозги после sql на mdx перестраиваются с трудом :)
Dmitriy, спасибо за участие :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Сложности с mdx-запросом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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