MDX - 具有 OR 条件的不同维度上的多个过滤器

MDX - multiple filters on different dimension with OR condition

我的 MDX 查询有问题。

我有一个度量 WEIGHT 和两个维度 DESTINATIONSOURCE 具有相同的属性:NAMETYPE.

我想return:

SUM of WEIGHT 
where 
   DESTINATION.TYPE="A" 
   **OR** 
   SOURCE.TYPE="B" 
   **AND** 
      (DESTINATION.TYPE **<>** SOURCE.TYPE) 

如果试试这个:

SELECT NON EMPTY { 
   [Measures].[Weight] 
} 
ON COLUMNS, 
NON EMPTY { 
   ([Source].[Name].[Name].ALLMEMBERS * [Destination].[Name].[Name].ALLMEMBERS ) 
} 
ON ROWS 
FROM 
( SELECT ( { [Source].[Type].&[A] } ) ON COLUMNS FROM ( SELECT ( { [Destination].[Type].&[B] } )
     ON COLUMNS FROM [CUBE])) WHERE ( [Destination].[Type].&[B], [Source].[Type].&[A] ) 

但是没有用。

在SQL中看起来像

Select source.name, destination.name, sum(weight) from cube
where
(source.type = "A" or destination.type = "b")
and 
(source.type <> destination.type)
group by source.name, destination.name, source.type, destination.type

您的“发件人”部分有点乱。请尝试以下操作:

SELECT 
NON EMPTY { [Measures].[Weight] } ON COLUMNS, 
NON EMPTY { [Source].[Name].[Name].ALLMEMBERS * [Destination].[Name].[Name].ALLMEMBERS } ON ROWS 
FROM [CUBE]
WHERE ( {[Destination].[Type].&[B]} * {[Source].[Type].[All]} + {[Destination].[Type].[All]} * {[Source].[Type].&[A]} )