2015-05-20 80 views
0

好日子所有,希望有人可以協助我有我正在創建的以下成員,這是代碼看起來如何工作的硬編碼。SSRS中的MDX參數

WITH MEMBER [Measures].[CoinInRank] AS CASE 
WHEN [Measures].[Total Amount Bet] <= 5100 AND [Measures].[Total Amount Bet] > 0 THEN "Casual" 
WHEN [Measures].[Total Amount Bet] > 5100 AND [Measures].[Total Amount Bet] <= 25000 THEN "Frequent" 
WHEN [Measures].[Total Amount Bet] > 25000 THEN "Avid" 
END MEMBER 

現在我想通過數量範圍,即5100和25000作爲參數從SSRS,我已經嘗試過以下絕對沒有運氣。

WITH MEMBER [Measures].[CoinInRank] AS CASE 
WHEN [Measures].[Total Amount Bet] <= STRTOSET(@FrequentMinValue,CONSTRAINED) AND [Measures].[Total Amount Bet] > 0 THEN "Casual" 
WHEN [Measures].[Total Amount Bet] > STRTOSET(@FrequentMinValue,CONSTRAINED) AND [Measures].[Total Amount Bet] <= STRTOSET(@FrequentMaxValue,CONSTRAINED) THEN "Frequent" 
WHEN [Measures].[Total Amount Bet] > STRTOSET(@FrequentMaxValue,CONSTRAINED) THEN "Avid" 
END MEMBER 

任何意見將不勝感激。

回答

1

StrToSet將字符串轉換爲集合。度量是一個數字表達式,因此與一個集合相比是行不通的。如果你擺脫了StrToSet會發生什麼?

WITH MEMBER [Measures].[CoinInRank] AS CASE 
WHEN [Measures].[Total Amount Bet] <= @FrequentMinValue AND [Measures].[Total Amount Bet] > 0 THEN "Casual" 
WHEN [Measures].[Total Amount Bet] > @FrequentMinValue AND [Measures].[Total Amount Bet] <= @FrequentMaxValue THEN "Frequent" 
WHEN [Measures].[Total Amount Bet] > @FrequentMaxValue THEN "Avid" 
END MEMBER 
0

您可能需要重新檢查您的語法。最後MEMBER看起來不屬於這裏。

CASE語法

WITH MEMBER [Measures].x AS 
CASE 
    WHEN 1>2 THEN 'false' 
    WHEN 2>1 THEN 'true' 
    ELSE 'none' 
END 

既然你拉從報告中的值,該值將是字符串格式。我不確定MDX引擎是否允許將數值與字符串進行比較。爲了保證安全,您可能需要使用StrToValue函數將該文本值轉換爲數字。

你最終的查詢應該是這樣 -

WITH MEMBER [Measures].[CoinInRank] AS CASE 
WHEN [Measures].[Total Amount Bet] <= STRTOVALUE(@FrequentMinValue,CONSTRAINED) 
AND [Measures].[Total Amount Bet] > 0 
    THEN "Casual" 
WHEN [Measures].[Total Amount Bet] > STRTOVALUE(@FrequentMinValue,CONSTRAINED) 
AND [Measures].[Total Amount Bet] <= STRTOVALUE(@FrequentMaxValue,CONSTRAINED) 
    THEN "Frequent" 
WHEN [Measures].[Total Amount Bet] > STRTOVALUE(@FrequentMaxValue,CONSTRAINED) 
    THEN "Avid" 
END 

希望它可以幫助你。