2014-11-04 110 views
1

我有以下查询:MDX:过滤家长带孩子

SELECT 
NON EMPTY { [Measures].[Mes] } ON COLUMNS, 
NON EMPTY { [Dim].[Lev1].Members, [Dim].[Lev2].Members } ON ROWS 
FROM [Cube] 

哪里LEV2是LEV1的分层孩子。 这给了我下面的结果:

Lev1 | Lev2 | Mes 
_________________ 
yes | 1 | 1 
yes | 2 | 2 
no | 3 | 3 
no | 4 | 4 

编辑:也许这种观点是更相关:

Dim  | Mes 
- yes | 3 
     1 | 1 
     2 | 2 
- no  | 7 
     3 | 3 
     4 | 4 

我要的是与LEV2 = 2或LEV2 = 4过滤LEV1得到以下结果:

Lev1 | Mes 
___________ 
yes | 2 
no | 4 

这是甚至可能吗?

我使用Mondran和Olap4j。

回答

0

我才发现了VisualTotals函数做的工作做好:

SELECT 
NON EMPTY {[Measures].[Mt cheques]} ON COLUMNS, 
NON EMPTY VisualTotals (hierarchize({ 
    [Dim].[Lev1].Members, 
    [Dim].[yes].[2], 
    [Dim].[no].[4] 
)}) ON ROWS 
FROM [Cube] 

感谢您的帮助!

1

看来Lev1Lev2是属性层次结构。由于这些可以是单独的(像制作你的第一个查询您的行标题的两列),你也可以将行和其中轴之间的割裂开来:

SELECT 
NON EMPTY { [Measures].[Mes] } ON COLUMNS, 
NON EMPTY { [Dim].[Lev1].Members } ON ROWS 
FROM [Cube] 
WHERE { [Dim].[Lev2].[2], [Dim].[Lev2].[4] } 
+0

Lev1和Lev2分别是Dim维度中同一层级的父级和子级。所以它们不能在两个不同的轴上分开。所以我尝试使用聚合和“FakeDimension”,但结果是错误的([是| 6]和[no | 6])。但也许这是一个mondrian的错误? – jBravo 2014-11-04 13:42:50

+1

@pDupond我不知道蒙德里安的细节。但在Analysis Services中,如果'Lev1'和'Lev2'是同一层次结构的两个层次,那么甚至不能将它们作为行标题中的两个单独列,而只能作为一列与两个层的成员混合。您的多维数据集中是否具有这些级别所基于的列的属性层次结构? – FrankPl 2014-11-04 14:35:55

+0

我对我的解释质量不好表示抱歉。我编辑了我的问题。我希望它会更相关。 – jBravo 2014-11-05 08:14:15

0

我认为这实际上是相同的FrankPI的回答。虽然这可能在你的应用程序中工作:

SELECT 
NON EMPTY 
{ [Measures].[Mes] } 
ON COLUMNS, 
NON EMPTY 
EXISTS(
    { [Dim].[Lev1].Members } 
    , { [Dim].[Lev2].[2], [Dim].[Lev2].[4] } 
) 
ON ROWS 
FROM [Cube] 

也许subselect

SELECT 
NON EMPTY 
{ [Measures].[Mes] } 
ON COLUMNS, 
NON EMPTY 
EXISTS(
    { [Dim].[Lev1].Members } 
    , { [Dim].[Lev2].[2], [Dim].[Lev2].[4] } 
) 
ON ROWS 
FROM 
(
    SELECT { [Dim].[Lev2].[2], [Dim].[Lev2].[4] } ON 0 
    FROM [Cube] 
) 
+0

我试过了,这给了我以下结果:[是| 3] [no | 7]。不管怎样,谢谢你。 – jBravo 2014-11-05 08:02:01

+0

@pDupond - 我使用'subselect'添加了另一个尝试 - 不确定您的客户是否会对此感到满意。 – whytheq 2014-11-05 17:15:27

+0

不幸的是,Mondrian不支持子选择查询,所以我无法尝试你的解决方案。 – jBravo 2014-11-06 07:56:17