3

我是 SSAS 新手,我正在尝试查询一个多维数据集,以根据 aome 度量组按日期顺序检索数据。我希望在查询中指定的日期范围。我正在使用的查询是这样的:-

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 标志施加的限制。

我尝试删除 constrained 关键字,然后甚至删除 strtomember 函数。但在每种情况下,我分别得到以下错误
Query (10, 16) STRTOMEMBER 函数需要 1 参数的成员表达式。使用了字符串或数字表达式。

* Query (10, 14) : 函数需要一个用于 1 参数的成员表达式。使用了字符串或数字表达式。*

我可以从最后两个错误中理解我需要包含约束关键字。但是谁能告诉我为什么这个查询不会执行?

4

3 回答 3

2

作为成员表达式传递的字符串必须是完全限定的成员名称,或者解析为一个。使用与 SELECT 中相同的格式。

例如:

STRTOMEMBER('[Date].[2/23/2013]', CONSTRAINED)

编辑:我刚刚注意到你的范围选择的语法看起来不对——你需要使用{...},而不是(...).

SELECT { 
    STRTOMEMBER('2/23/2013', CONSTRAINED) : 
    STRTOMEMBER('3/1/2013', CONSTRAINED) }
于 2013-03-02T17:59:04.790 回答
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]) 
于 2013-03-05T07:37:20.857 回答
1
FROM ( SELECT (
   STRTOMEMBER(@FromDateCalendarDate, CONSTRAINED) :
   STRTOMEMBER(@ToDateCalendarDate, CONSTRAINED) ) ON COLUMNS
于 2013-05-10T14:34:11.757 回答