2014-02-10 106 views
1

我在T-SQL方面很有經驗,但對我來說不是MDX。在SQL中使用的MDX列別名

我想要做的是查詢我們的SSAS多維數據集並將值返回到SQL視圖以用作基於多維數據集的報表中的參數。

我需要根據日期層次返回財務季節的3個值。

這是下面的代碼,它返回正確的數據。

WITH 
    MEMBER [CurrentHalf] AS [Date - Master].[Financial Calendar].CURRENTMEMBER.UNIQUENAME 
    MEMBER [NextHalf] AS [Date - Master].[Financial Calendar].LEAD(1).UNIQUENAME 
    MEMBER [PreviousHalf] AS [Date - Master].[Financial Calendar].LEAD(-1).UNIQUENAME 

SELECT {[Date - Master].[Financial Calendar].[Season Half]} ON COLUMNS , 
     {[CurrentHalf],NextHalf,PreviousHalf} ON ROWS 
FROM [Sales and Stock] 

WHERE (Filter([Date - Master].[DateKey].Members,[Date - Master].[DateKey].MemberValue = (format(now(),"dd/MM/yyyy")))) 

但是,[Date - Master]。[Financial Calendar]。[Season Half]的列名返回標題值(例如2014-秋/冬)。

見圖片:

enter image description here

通常情況下,因爲我傳遞到SQL我需要一個列名來選擇關閉,這將是罰款不過。我需要的是重命名此列,其他的東西(例如HalfName)

我已經試過

WITH 
    MEMBER [CurrentHalf] AS [Date - Master].[Financial Calendar].CURRENTMEMBER.UNIQUENAME 
    MEMBER [NextHalf] AS [Date - Master].[Financial Calendar].LEAD(1).UNIQUENAME 
    MEMBER [PreviousHalf] AS [Date - Master].[Financial Calendar].LEAD(-1).UNIQUENAME 
    MEMBER [HalfName] as [Date - Master].[Financial Calendar].[Season Half].CURRENTMEMBER.VALUE 

SELECT {[HalfName]} ON COLUMNS , 
     {[CurrentHalf],NextHalf,PreviousHalf} ON ROWS 
FROM [Sales and Stock] 

WHERE (Filter([Date - Master].[DateKey].Members,[Date - Master].[DateKey].MemberValue = (format(now(),"dd/MM/yyyy")))) 

但是,這仍然沒有奏效。

任何幫助將不勝感激。

感謝

+0

我想你正在等待你的MDX查詢返回矩陣。如果您更改原始查詢以在列上選擇任何內容(空括號),會發生什麼情況?這是否給你你想要的東西? – mmarie

+0

你想看到什麼結果?以及如何與SQL進行交互?通過鏈接服務器? – FrankPl

回答

3

當你定義MEMBER表達式作爲你有,它推斷出你的[Measures]尺寸創建它們,讓你[HalfName]列的全名是[Measures].[HalfName]。除非你錯誤地認爲你的MDX for SQL(它們看起來像共享一些語法,但卻是非常不同的野獸),否則,我不會看到SQL/T-SQL在哪裏出現。

+0

謝謝,SQL進入它,因爲我需要選擇一個打開的查詢列,所以我需要列的名稱。當我嘗試選擇{[Measures]。[HalfName] 執行查詢... Measures等級已經出現在Axis0軸中。 –

+1

@WillWainwright是的,你不能在多軸上使用相同的層次結構,但是一個解決方法是將'ON ROWS'成員改爲'MEMBER [Date - Master]。[CurrentHalf] ... etc'然後使用那個完整的名稱放在行上,有效地使它們成爲'[Date - Master]'維度的動態成員。 –

+0

嗨@蒂莫西,這很好。謝了哥們 –