2014-02-05 27 views
2

以下查詢在SSMS中完美工作,但由於我在COLUMNS軸上定義了維度,因此它無法在查詢設計器中工作:在查詢設計器中展平驗證的MDX查詢

SELECT 
    NON EMPTY { 
     [Measures].[Amount] 
     * [Cost Type].[Cost Type].[Cost Type] 
    } ON COLUMNS 
    , NON EMPTY { 
     [Empl].[Name].[Name] 
     * [Date].[Calendar].[Month] 
    } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
    Cube 

要解決這個問題,我已經夷爲平地通過以下方式查詢:

SELECT t.* 
FROM (

    SELECT 
     NON EMPTY { 
      [Measures].[Amount] 
      * [Cost Type].[Cost Type].[Cost Type] 
     } ON COLUMNS 
     , NON EMPTY { 
      [Empl].[Name].[Name] 
      * [Date].[Calendar].[Month] 
     } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
    FROM 
     Cube 

) AS t 

這個作品在SSMS很大,就像第一個查詢。然而,這將導致以下錯誤在查詢設計師:

TITLE: Microsoft Visual Studio 
------------------------------ 

Query preparation failed. 

------------------------------ 
ADDITIONAL INFORMATION: 

Please verify that the query is an MDX one and not DMX. (Microsoft.AnalysisServices.Controls) 

------------------------------ 
BUTTONS: 

OK 
------------------------------ 

這是我在尋找的結果:

Name  Month  Cost_Type1  Cost_Type2  Cost_Type3 
a  january 1.54   1.56   2.43 
a  january 3.53   2.34   1.23 
b  january 3.53   2.13   4.53 

我怎樣才能得到這個查詢的查詢,設計師的工作(從BIDS,Visual Studio)?

+0

您是否試圖使用查詢設計器(拖放)的設計器模式構造此查詢?然後,您可以切換到MDX模式以查看設計人員生成的MDX。 – Dan

+0

我無法在設計器模式下構建查詢,因爲它不允許我將度量與維度組合在一起。 – Aquillo

+0

只是爲了確保我理解正確:您的展平數據集應該簡單地顯示所有員工,所有月份和所有成本類型的金額。對?因此,在設計器模式中,爲什麼不直接從[Empl] -dimension中拖拽[Name]屬性,[Date]維的[Calendar]屬性中的[Month]級別以及[成本類型] - [成本類型]維度的屬性,然後最後是[金額]度量。瞧! – Dan

回答

1

既然你想要的[措施] [金額]測量重複列的每個[費用類型],你不用爲每個成本類型創建計算成員沒有其他選擇。

WITH 
MEMBER [Cost_Type1] AS ([Cost Type].[Cost Type].[Cost_Type1], [Measures].[Amount]) 
MEMBER [Cost_Type2] AS ([Cost Type].[Cost Type].[Cost_Type2], [Measures].[Amount]) 
MEMBER [Cost_Type3] AS ([Cost Type].[Cost Type].[Cost_Type3], [Measures].[Amount]) 

SELECT { [Cost_Type1], [Cost_Type2], [Cost_Type3] } ON COLUMNS, 
    NON EMPTY { 
     [Empl].[Name].[Name] 
     * [Date].[Calendar].[Month] 
    } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
    Cube 

這是由於在BIDS查詢設計器中受到限制 - 它不允許在「設計時」使用未知數量的列,因此無法在COLUMNS軸上指定一個集合 - 只有單個成員(即使它可以正常工作SSMS)。