Sql server MDX查询中的Filter函数不工作?

Sql server MDX查询中的Filter函数不工作?,sql-server,sql-server-2008-r2,ssas,mdx,olap,Sql Server,Sql Server 2008 R2,Ssas,Mdx,Olap,我使用SQLServer2008R2 我使用SSAS和MDX查询从数据仓库AdventureWorks中选择数据 我需要从两个度量值[Measures].[Internet Sales Amount]和[Measures].[Internet Tax Amount]获取数据,其中[Measures].[Internet Sales Amount]度量值大于2644017.71 但我的查询不起作用 Select Filter( { [Measures].[I

我使用SQLServer2008R2

我使用SSAS和MDX查询从数据仓库
AdventureWorks
中选择数据

我需要从两个度量值
[Measures].[Internet Sales Amount]
[Measures].[Internet Tax Amount]
获取数据,其中
[Measures].[Internet Sales Amount]
度量值大于
2644017.71

但我的查询不起作用

Select
Filter(
        {
            [Measures].[Internet Sales Amount]
            ,[Measures].[Internet Tax Amount]
        } , 
        [Measures].[Internet Sales Amount] >= 2644017.71
      ) on columns,
head(
        [Customer].[Customer Geography].[Country],
        3
    )on rows
From [Adventure Works]
您应该使用

Select {
            [Measures].[Internet Sales Amount]
            ,[Measures].[Internet Tax Amount]
        } 
on columns,
head(
   Filter(
        [Customer].[Customer Geography].[Country] , 
        [Measures].[Internet Sales Amount] >= 2644017.71
      ),
   3) 
on rows
From [Adventure Works]
因为您想要过滤行(即国家),而不是列(度量)

可以肯定的是:此代码按照立方体设计中配置Country属性的顺序(通常按字母顺序)提供前三个国家。如果这不是您想要的,您可能希望使用
TopCount()
而不是
Head()
,它提供了三个销售最高的国家:

Select {
            [Measures].[Internet Sales Amount]
            ,[Measures].[Internet Tax Amount]
        } 
on columns,
TopCount(
    Filter(
        [Customer].[Customer Geography].[Country] , 
        [Measures].[Internet Sales Amount] >= 2644017.71
        ),
   3, [Measures].[Internet Sales Amount]) 
on rows
From [Adventure Works]

看起来你漏掉了对国家的提及。也许您想编辑以修复?