【问题标题】:SSAS - pivot query resultSSAS - 透视查询结果
【发布时间】:2018-06-01 23:40:06
【问题描述】:

我必须创建每个多维数据集(总共 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 中进行。有什么建议/想法吗?

【问题讨论】:

    标签: sql sql-server ssas mdx


    【解决方案1】:

    你似乎想要条件聚合:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 2022-01-04
      • 2021-02-28
      • 2015-02-24
      • 2012-03-18
      相关资源
      最近更新 更多