7

我的多维数据集的相关结构是我有一个带有“类”和“子类”的层次结构。我还有一个名为“价值”的度量,这是我试图获得的。

一个简单的查询可能如下所示:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY ([Some Dimension].[Class Hierarchy].[Class]) ON ROWS
FROM [MyCube]

而且我显然可以使用返回给 Adomd 的 HIerarchy 读取子类。

我的问题是双重的,首先我将如何“展平”这个层次结构,以便将 Class 和 SubClass 作为 CellSet 中的离散成员接收?这不起作用:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   [Some Dimension].[Class Hierarchy].[Class], 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]

在 Crossjoin 函数中多次使用 Class Hierarchy 层次结构

第二个问题,我实际上需要做的是在特定类上过滤上述内容,同样,由于与上述相同的原因,这将不起作用。

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   {[Some Dimension].[Class Hierarchy].[Class].&[ClassA],[Some Dimension].[Class Hierarchy].[Class].&[ClassB]}, 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]

非常感谢任何帮助。MDX 快把我逼疯了!

4

3 回答 3

4

您缺少维度上的 MEMBERS 属性。

对于您的第一个示例,请尝试以下操作:

SELECT 
    NON EMPTY ([Measures].[Value]) ON COLUMNS,
    NON EMPTY {(
            [Some Dimension].[Class Hierarchy].[Class].MEMBERS,
            [Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]

对于您的第二个示例,请尝试以下操作:

SELECT 
    NON EMPTY ([Measures].[Value]) ON COLUMNS, 
    NON EMPTY {(
            [Some Dimension].[Class Hierarchy].[Class].&[ClassA],
            [Some Dimension].[Class Hierarchy].[Class].&[ClassB],
            [Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]
于 2009-12-07T16:33:00.803 回答
2

在 WHERE 子句中使用子查询。MDX 将始终限制仅在一个轴上使用一维。

子查询是解决这个问题的一种方法。在 MDX 也让我发疯之后,我最近学会了这个技巧。

于 2013-09-20T17:18:20.407 回答
0

嗨,这个查询对我有用。

 SELECT NON EMPTY { [Measures].[App Count] }
 ON COLUMNS, 
 NON EMPTY 
 {(
 EXISTING 
 (
 [MART TIME DIM].[Date].[Date] .MEMBERS) * 
 [New Ren DIM].[New Ren CODE].[New Ren CODE].ALLMEMBERS
 )}
 ON ROWS FROM [SubmissionCube]  
 where
({
[MART BROKER DIM].[BROKER ID].&[10812]},{[MART TIME DIM].[Year].&[2015],
{[MARTTIME DIM].[Year].&[2016]}
})  

请注意查询中的 where 子句中的“}”。

于 2016-12-07T18:56:36.227 回答