我使用的是SQL Server 2008 R2。
我对来自Adventure Works
数据仓库的选择数据使用SSAS和MDX查询。
我需要从两个度量[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]
答案 0 :(得分:3)
你应该使用
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]