powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012. MDX. Элементы, по которым происходит Aggregate
4 сообщений из 4, страница 1 из 1
SSAS 2012. MDX. Элементы, по которым происходит Aggregate
    #39590374
grAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет все.

Есть запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[CSV][/CSV]
WITH
  SET [AC] as {[Customer].[Country].&[Australia], [Customer].[Country].&[Canada]}
  SET [FG] as {[Customer].[Country].&[France], [Customer].[Country].&[Germany]}
  MEMBER [Customer].[Country].[AC] as Aggregate([AC]) 
  MEMBER [Customer].[Country].[FG] as Aggregate([FG]) 
  MEMBER [Список городов] as 
  GENERATE(EXISTS(EXISTING [Customer].[Country].[Country], ([Measures].[Internet Sales Amount])), [Customer].[Country].CurrentMember.Name,  ',')
SELECT 
  {[Список городов], [Measures].[Internet Sales Amount], [Measures].[Customer Count]} ON 0,
  {[Customer].[Country].[AC], [Customer].[Country].[FG]} ON 1 
FROM [Adventure Works]



Результат
Список городовInternet Sales AmountCustomer CountACAustralia+Canada+France+Germany+United Kingdom+United States11 038 845.455 162FGAustralia+Canada+France+Germany+United Kingdom+United States5 538 330.053 590

Можно ли, и как, получить следующий результат
Список городовInternet Sales AmountCustomer CountACAustralia+Canada11 038 845.455 162FGFrance+Germany5 538 330.053 590

Спасибо.
...
Рейтинг: 0 / 0
SSAS 2012. MDX. Элементы, по которым происходит Aggregate
    #39590424
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grAlex,

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

вариант 1 (не точный) : через комбинаторику генерировать компонируя разные элементы до тех пор пока не получится сходная сумма
вариант 2 - писать свою функцию которая это расшифрует обратно
вариант 3 - (при небольшом количестве элементов на оси) прописать выводимое значение (можно cell calculation) через более простую функцию iif/case (типа если ...currentmember.name='AC' then generate([AC] ...)
вариант 4 - вычисление из одноимённой связки набора с кастомным элементом
Код: sql
1.
MEMBER [Список городов] as generate(strtoset([Customer].[Country].currentmember.name),[Customer].[Country].currentmember.name,'+')

вариант 4 наверное самый простой
...
Рейтинг: 0 / 0
SSAS 2012. MDX. Элементы, по которым происходит Aggregate
    #39590507
grAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

Спасибо за наводки. Остановился на такой конструкции
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
WITH
  SET [AC] as {[Customer].[Country].&[Australia], [Customer].[Country].&[Canada]}
  SET [FG] as {[Customer].[Country].&[France], [Customer].[Country].&[Germany]}
 
  MEMBER [Customer].[Country].[AC] as Aggregate([AC]) 
  MEMBER [Customer].[Country].[FG] as Aggregate([FG]) 
  MEMBER [Список городов] as 
    GENERATE(iif ([Customer].[Country].CurrentMember is [Customer].[Country].[AC], [AC],[FG]) as d, d.CURRENT.ITEM(0).NAME, " ")
SELECT 
  {[Список городов], [Measures].[Internet Sales Amount], [Measures].[Customer Count]} ON 0,
  {[Customer].[Country].[AC], [Customer].[Country].[FG]} ON 1 
FROM [Adventure Works]



Список городовInternet Sales AmountCustomer CountACAustralia Canada11 038 845.455 162FGFrance Germany5 538 330.053 590
...
Рейтинг: 0 / 0
SSAS 2012. MDX. Элементы, по которым происходит Aggregate
    #39590520
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grAlex,

.. iif/case .. is .. конечно побыстрее будет как рекомендованный подход в best practices но поштучное перечисление ставит неудобство/ограничение в количестве элементов (если у тебя их потом станет 5-10-20..)

оба решения потребуют доработки на логику поведения в случае если на осях что-то другое
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2012. MDX. Элементы, по которым происходит Aggregate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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