我是SSAS新手,我正在尝试查询多维数据集,以按日期顺序检索一些测量组的数据。我希望在查询中指定的日期范围。我正在使用的查询是: -
SELECT
{
[Measures].[Measure1],
[Measures].[Measure2],
[Measures].[Measure3]
}
ON COLUMNS,
NON EMPTY{
[Date].[AllMembers]
}
ON ROWS
FROM (SELECT ( STRTOMEMBER('2/23/2013', CONSTRAINED) :
STRTOMEMBER('3/1/2013', CONSTRAINED) ) ON COLUMNS
FROM [MyCube])
SELECT
{
[Measures].[Measure1],
[Measures].[Measure2],
[Measures].[Measure3]
}
ON COLUMNS,
NON EMPTY{
[Date].[AllMembers]
}
ON ROWS
FROM (SELECT ( STRTOMEMBER('2/23/2013', CONSTRAINED) :
STRTOMEMBER('3/1/2013', CONSTRAINED) ) ON COLUMNS
FROM [MyCube])
然而它给了我以下错误
查询(10,16)违反了STRTOMEMBER函数中CONSTRAINED标志所施加的限制。
我尝试删除约束关键字,然后甚至是strtomember函数。但在每种情况下,我分别得到以下错误
查询(10,16)STRTOMEMBER函数需要1参数的成员表达式。使用了字符串或数字表达式。
和
* Query(10,14):function期望1参数的成员表达式。使用了字符串或数字表达式。
*
我可以从最后两个错误中了解到我需要包含约束关键字。但有谁能告诉我为什么这个查询不会执行?
答案 0 :(得分:2)
作为成员表达式传递的字符串必须是完全限定的成员名称,或者解析为一个。使用与SELECT中相同的格式。
例如:
STRTOMEMBER('[Date].[2/23/2013]', CONSTRAINED)
修改:我刚注意到您的范围选择的语法看起来不对 - 您需要使用{...}
,而不是(...)
。
SELECT {
STRTOMEMBER('2/23/2013', CONSTRAINED) :
STRTOMEMBER('3/1/2013', CONSTRAINED) }
答案 1 :(得分:1)
请执行以下脚本。 通过右键单击并将其粘贴到STRTOMEMBER值中,提取日期维度属性进行复制。
它会正常工作。
SELECT NON EMPTY { [Measures].[Internet Sales Amount] } ON COLUMNS
FROM ( SELECT ( STRTOMEMBER('[Date].[Date].&[20050701]') :
STRTOMEMBER('[Date].[Date].&[20061007]') ) ON COLUMNS
FROM [Adventure Works])
答案 2 :(得分:1)
FROM ( SELECT (
STRTOMEMBER(@FromDateCalendarDate, CONSTRAINED) :
STRTOMEMBER(@ToDateCalendarDate, CONSTRAINED) ) ON COLUMNS