我在这里真的很困惑......试图为多维数据集创建一些年初至今的措施,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].[Year-Qtr-Month-Date].[Date].&[2017-01-07T00:00:00] 时,在多维数据集中找不到维度 '[Time Dimenson]' ,被解析了。”
我意识到日期与同一范围不完全匹配,但在其他方面正在构造一个相同的字符串。前者行得通而后者行不通对我来说毫无意义。也尝试在它周围加上单引号,然后抱怨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”一词拼错了。在这种情况下,错误发生在键盘和椅子之间。