2013-08-19 26 views
1

我使用SQL Server 2008 R2。MDX查詢中的填充函數不起作用?

I使用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] 

enter image description here

回答

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] 
+1

它看起來像你離開了參考國家。也許你想編輯修復? – mmarie

+0

哦,一個愚蠢的複製和粘貼錯誤,我會解決它。謝謝! – FrankPl