Ssas
STRTOMEMBER 函式在查找維度時引發錯誤
我真的很難過……試圖為一個多維數據集創建一些年初至今的度量,
NOW()
指定目前的月份和日期(減去兩天的滯後),年份由年度的目前成員指定層次結構上的值 - 並STRTOMEMBER
用於將年份的這些位粘貼到對維度特定成員的引用中,該維度可以與度量交叉連接以獲得最新的年度值。此程式碼在
STRTOMEMBER
用於指定範圍時工作得很好……它列出了第一天和第十天之間的每一天,以及每一天的收入:SELECT [Measures].[Revenue USD] ON COLUMNS, { STRTOMEMBER('[Time Dimension].[Year-Qtr-Month-Date].[Date].&[2017-01-01T00:00:00]') : STRTOMEMBER('[Time Dimension].[Year-Qtr-Month-Date].[Date].&[2017-01-10T00:00:00]') } ON ROWS FROM [CurrentCube] WHERE [Time Dimension].[Year].&[2017]
但隨後以下不起作用,它給出了錯誤:
“維度 '
$$ Time Dimenson $$’ 未在多維數據集中找到字元串時,$$ Time Dimenson $$.$$ Year-Qtr-Month-Date $$.$$ Date $$.&$$ 2017-01-07T00:00:00 $$,被解析了。”
我意識到日期與相同的範圍並不完全匹配,但是正在構造一個相同的字元串。對我來說,前者會起作用而後者不會起作用,這對我來說毫無意義。也嘗試在它周圍加上單引號,然後它抱怨
STRTOMEMBER
需要一個成員表達式但使用了一個字元串或數字表達式。對我來說,第一個選項可行但第二個不可行,這對我來說毫無意義。也無法在網上找到太多解釋此錯誤消息的內容。SELECT [Measures].[Revenue USD] ON COLUMNS, { STRTOMEMBER(FORMAT(CSTR("[Time Dimenson].[Year-Qtr-Month-Date].[Date].&[" + [Time Dimension].[Year].CURRENTMEMBER.MEMBER_CAPTION + "-" + RIGHT("0" + FORMAT(CSTR(MONTH(NOW()-5))),2) + "-" + RIGHT("0" + FORMAT(CSTR(DAY(NOW()-5))),2) + "T00:00:00]"))) : STRTOMEMBER(FORMAT(CSTR("[Time Dimenson].[Year-Qtr-Month-Date].[Date].&[" + [Time Dimension].[Year].CURRENTMEMBER.MEMBER_CAPTION + "-" + RIGHT("0" + FORMAT(CSTR(MONTH(NOW()-2))),2) + "-" + RIGHT("0" + FORMAT(CSTR(DAY(NOW()-2))),2) + "T00:00:00]"))) } ON ROWS FROM [DataInsight] WHERE [Time Dimension].[Year].&[2017]
發現錯誤 - 這是一個拼寫錯誤……“Time Dimenson”的“dimension”一詞拼寫錯誤。在這種情況下,錯誤發生在鍵盤和椅子之間。