Sql server MDX查询中的Filter函数不工作?
我使用SQLServer2008R2 我使用SSAS和MDX查询从数据仓库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
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]
看起来你漏掉了对国家的提及。也许您想编辑以修复?