我正在使用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/