1

我使用 SQL Server 2008 R2 。

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

我需要从两个度量中获取数据,[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]

在此处输入图像描述

4

1 回答 1

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 属性的顺序(通常按字母顺序)提供前三个国家/地区。如果这不是您想要的,您可能希望使用 useTopCount()而不是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]
于 2013-08-19T17:23:48.930 回答