首页 > 解决方案 > MDX 中行和列的不同过滤器

问题描述

我有以下 MDX 查询

SELECT 
{[Year].[2020],[Year].[2019],[Year].[2020]} on 0,

{[Sales].[GER],[Position].[EU],[Position].[US],[Position].[BL]} on 1  

FROM  
[DB]    

WHERE ([Period].[FULL],[Content].[ALL],[CUR].[EUR])

返回此表:

          YEAR   2020 (€) 2019 (€) 2020 (€) 
Position
GER                 
EU
US
BL

但是,对于每一行和每一列,我都想应用一个拟合器。对于列,我希望更改货币,对于行,我希望更改期间。

因此,我的表应如下所示:

          YEAR   2020 ($) 2019 (€) 2020 (€) 
Position
GER (YE)                
EU (YB)
US (YE)
BL (YB)

我尝试使用 subselect 和 filter 但它不起作用。

有任何想法吗?

标签: sqldatabasemdx

解决方案


行和列轴由集合定义。一个集合有元组。元组有成员。所以我们用一组 3 个元组创建了一个列轴。每个元组指定两个成员:年份和货币。这就是如何对每一列应用不同的过滤器。


SELECT 
{
([Year].[2020] ,[CUR].[USD]),
([Year].[2019] ,[CUR].[EUR]),
([Year].[2020] ,[CUR].[EUR])
} on 0,

{[Sales].[GER],[Position].[EU],[Position].[US],[Position].[BL]} on 1  

FROM  
[DB]    

WHERE ([Period].[FULL],[Content].[ALL])


推荐阅读