我正在使用icCube的Sales多维数据集来学习MDX。我想编写一个MDX查询来显示那些2010年销售收入超过$ 80,000的国家/地区的2009年销售收入。我尝试了以下操作,但是它返回了只有一个列([Amount])的空表:

WITH
 SET [myset] AS Filter([Country].members, ([Measures].[Amount], [2010])>80000)
select [Country].members on 0, [Amount] on 1
from (select [myset] on 0, [Amount] on 1 from [sales])
where [2009]

最佳答案

只需使用

WITH
 SET [myset] AS Filter([Country].members, ([Measures].[Amount], [2010])>80000)
select [myset] on 0, [Amount] on 1
from [sales]
where [2009]

在MDX中,这种查询不需要subselect或WHERE。您甚至可以省略设置的myset,编写
select Filter([Country].members, ([Measures].[Amount], [2010])>80000) on 0,
       [Amount] on 1
from [sales]
where [2009]

我在Adventure works上尝试了类似的查询,它显示了“所有客户”,澳大利亚,加拿大和美国,但没有显示法国,德国和英国:
SELECT Filter([Customer].[Country].Members,
              ([Measures].[Internet Sales Amount], [Date].[Calendar Year].&[2006]) > 600000
             )
       ON 0,
       {[Measures].[Internet Sales Amount]}
       ON 1
FROM [Adventure Works]
WHERE [Date].[Calendar Year].&[2008]

关于filter - MDX:在相同维度的不同成员上进行过滤和切片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20610886/

10-16 06:24