Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX Определить количество выбранных элементов измерения / 9 сообщений из 9, страница 1 из 1
18.11.2019, 14:40
    #39890520
IlyamI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
Всем доброго времени суток.

Подскажите, есть ли возможность с помощью MDX-запроса определить количество выбранных элементов измерения?

Есть задача: если пользователь в excel выбрал несколько (от двух и более, в разных комбинациях) элементов какого-либо (или конкретного) измерения, вывести одно значение, если выбран только один элемент - выдать другое значение.
...
Рейтинг: 0 / 0
18.11.2019, 15:17
    #39890562
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
IlyamI,

Есть понятие SCOPE и CurrentMember . И Возможно ваша задача решается через них.

Но если вам реально приспичило посчитать, сколько элементов сейчас развернуто на оси, то используйте existing

https://docs.microsoft.com/ru-ru/analysis-services/multidimensional-models/mdx/mdx-query-existing-keyword
...
Рейтинг: 0 / 0
18.11.2019, 15:54
    #39890595
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
IlyamI,

пример как это делать показал нам еще Моша, но к сожалению его блог доступен (пока еще) только через Wayback Machine
(ссылка в спойлере выглядит кривовато, но это так надо. URL внутри которого еще один URL который больше не доступен)

Microsoft OLAP by Mosha Pasumansky. How to detect subselect inside MDX calculations (aka Multiselect in Excel 2007) https://web.archive.org/web/20100130225056/http://sqlblog.com/blogs/mosha/archive/2007/09/26/how-to-detect-subselect-inside-mdx-calculations-aka-multiselect-in-excel-2007.aspx
...
Рейтинг: 0 / 0
18.11.2019, 17:02
    #39890674
IlyamI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
всем спасибо. вопрос закрыт.
решен на основе
Код: sql
1.
2.
3.
4.
5.
CREATE HIDDEN DYNAMIC SET CURRENTCUBE.[Новое Измерение]
 AS EXISTING([Измерение].[id].CHILDREN);

CREATE MEMBER CURRENTCUBE.[Measures].[Количество выбранных значений]
 AS [Измерение].count



И не мне так захотелось, а заказчику
...
Рейтинг: 0 / 0
19.11.2019, 10:25
    #39890928
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
IlyamI,


Код: sql
1.
2.
CREATE MEMBER CURRENTCUBE.[Measures].[Количество выбранных значений]
 AS EXISTING([Измерение].[id].CHILDREN).Items.Count
...
Рейтинг: 0 / 0
17.04.2020, 02:58
    #39948241
нуб987
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
a_voronin,

MS Visual Studio 2019 ругается:
авторСинтаксический анализатор: Неверный синтаксис "Items".



а если написать:
Код: sql
1.
count(EXISTING([Измерение].[id].CHILDREN))


- то, если выбран 1 элемент, то вернет 1
- если выбрано >1 элемента, то вернет все в измерении (например, 5)
...
Рейтинг: 0 / 0
17.04.2020, 13:10
    #39948347
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
нуб987,

можно и так
...
Рейтинг: 0 / 0
17.04.2020, 15:24
    #39948375
нуб987
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
a_voronin,

можно
но нужно, чтобы выдавал реальное кол-во выбранных элементов: если выбрали 4, то чтобы и выдавал 4 :)
В документации микрософта не нашел item s , чтобы повторить ваш код. Да и студия указывает на ошибку...
...
Рейтинг: 0 / 0
20.04.2020, 09:08
    #39948851
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX Определить количество выбранных элементов измерения
нуб987,

Я описался, речь идет об item

https://docs.microsoft.com/en-us/sql/mdx/item-member-mdx?view=sql-server-ver15

Может я слегка перепутал буквы, но надо действовать через Existing.


EXISTING([Измерение].[id].CHILDREN).Items.Count

EXISTING([Измерение].[id].CHILDREN, мера/группа мер).Item.Count

COUNT(EXISTING([Измерение].[id].CHILDREN, мера/группа мер))

Лучше всего сделайте SET от EXISTING([Измерение].[id].CHILDREN, мера/группа мер). Нужно получить MDX, который собирает элементы по которым есть данные в рамках конкретного показателя.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX Определить количество выбранных элементов измерения / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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