SSAS - результат запроса сводки - PullRequest
0 голосов
/ 01 июня 2018

Мне нужно создать список измерений и атрибутов, используемых каждым кубом (всего 5 кубов).Некоторые из них используются несколькими кубами.

С помощью следующего скрипта:

SELECT [CUBE_NAME] AS [CUBE],
 [DIMENSION_UNIQUE_NAME] AS [DIMENSION],
 LEVEL_CAPTION AS [ATTRIBUTE]
FROM $system.MDSchema_levels
WHERE level_origin=2
AND LEVEL_NAME <> '(All)'

Мне удалось получить список того, что мне нужно, например:

 CUBE | Dimension | Attribute
 A    | Person    | Name
 A    | Person    | First Name
 A    | Location  | City
 B    | Person    | Name
 B    | Person    | First Name
 C    | Product   | Productname

Чтобы получить более четкое представление, я искал способ сделать это следующим образом:

 Dimension | Attribute    | Cube A | Cube B | Cube C 
 Person    | Name         | X      | X      | 
 Person    | First Name   | X      | X      | 
 Location  | City         | X      |        | 
 Product   | Productname  |        |        | X

(X указывает, какие атрибуты существуют в каком кубе) Я знаю, что это можно изменить в SQL, ноЯ понятия не имею, как это сделать в MDX.Есть предложения / идеи?

1 Ответ

0 голосов
/ 01 июня 2018

Вы, кажется, хотите условное агрегирование:

SELECT Dimension, Attribute, 
       MAX(CASE WHEN CUBE = 'A' THEN 'X' END) AS CubeA,
       MAX(CASE WHEN CUBE = 'B' THEN 'X' END) AS CubeB,
       MAX(CASE WHEN CUBE = 'C' THEN 'X' END) AS CubeC
FROM $system.MDSchema_levels
WHERE level_origin=2 AND LEVEL_NAME <> '(All)'
GROUP BY Dimension, Attribute;
...