嘗試只比較CASE
聲明條件中的成員值。目前,您正在比較mdx
中未看作數值表達式的成員[Date].[Calendar Month Number Of Year]
,並將其與數值表達式(2,4,...)進行比較。
也許以下工作更好:
CREATE MEMBER CURRENTCUBE.[Measures].[SBBD]
AS case [Date].[Calendar Month Number Of Year].CURRENTMEMBER.MEMBER_VALUE
when 2 then [Measures].[SB]/28
when 4 then [Measures].[SB]/30
when 6 then [Measures].[SB]/30
when 9 then [Measures].[SB]/30
when 11 then [Measures].[SB]/30
else [Measures].[SB]/31
end,
FORMAT_STRING = "Standard",
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'LB';
我會更傾向於最初創建度量[Measures].[NumOfMonth]
再喂到這一點的情況下(沒準分裂兩種這樣會更快):
CREATE MEMBER CURRENTCUBE.[Measures].[NumOfMonth]
AS [Date].[Calendar Month Number Of Year].CURRENTMEMBER.MEMBER_VALUE,
FORMAT_STRING = "Standard",
VISIBLE = 0 , ASSOCIATED_MEASURE_GROUP = 'LB';
CREATE MEMBER CURRENTCUBE.[Measures].[SBBD]
AS case [Measures].[NumOfMonth]
when 2 then [Measures].[SB]/28
when 4 then [Measures].[SB]/30
when 6 then [Measures].[SB]/30
when 9 then [Measures].[SB]/30
when 11 then [Measures].[SB]/30
else [Measures].[SB]/31
end,
FORMAT_STRING = "Standard",
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'LB';
硬幣
01另一側
而不是擔心你可以比較成員的值。該案件的情況應該使用currentmember
功能,並通過會員更換號碼:
CREATE MEMBER CURRENTCUBE.[Measures].[SBBD]
AS CASE [Date].[Calendar Month Number Of Year].CURRENTMEMBER
WHEN [Date].[Calendar Month Number Of Year].[2] then [Measures].[SB]/28
WHEN [Date].[Calendar Month Number Of Year].[4] THEN [Measures].[SB]/30
WHEN [Date].[Calendar Month Number Of Year].[6] THEN [Measures].[SB]/30
WHEN [Date].[Calendar Month Number Of Year].[9] THEN [Measures].[SB]/30
WHEN [Date].[Calendar Month Number Of Year].[11] THEN [Measures].[SB]/30
ELSE[Measures].[SB]/31
END,
FORMAT_STRING = "Standard",
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'LB';
是的 - 你想一個成員類型比較數字類型 - 它們永遠不會匹配 – whytheq