Ssas MDX无法将我的表达式识别为元组集?
当有两个成员引用的&[Value]语法被交叉连接时,就会出现以下错误: 查询(3,3)函数要求1参数使用元组集表达式。使用了字符串或数字表达式 请注意,Ssas MDX无法将我的表达式识别为元组集?,ssas,mdx,Ssas,Mdx,当有两个成员引用的&[Value]语法被交叉连接时,就会出现以下错误: 查询(3,3)函数要求1参数使用元组集表达式。使用了字符串或数字表达式 请注意,函数中有两个空格,就好像它试图命名一个没有名字的函数一样。我可以用“AdventureWorksDW2008R2”示例数据库重新创建问题 不起作用: SELECT NON EMPTY { [Date].[Day of Month].&[1] * [Sales Territory].[Sales Territory
函数中有两个空格,就好像它试图命名一个没有名字的函数一样。我可以用“AdventureWorksDW2008R2”示例数据库重新创建问题
不起作用:
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
作品:
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* {([Sales Territory].[Sales Territory Country].&[Canada])}
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
也适用于:
SELECT
NON EMPTY
{
{([Date].[Day of Month].&[1])}
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
也适用于:
SELECT
NON EMPTY
{
{([Date].[Day of Month].&[1])}
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
也适用于:
SELECT
NON EMPTY
{
{([Date].[Day of Month].&[1])}
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
SELECT
NON EMPTY
{
[Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
是什么将我的表达式解释为,如果不是元组集的话?我总是在这类事情上磕磕绊绊,它认为它是字符串或数字表达式,这真的让人困惑。该表达式是一个单元组集(即,一个具有元组的集合,它是多维数据集中的一个特定成员。这(令人困惑地)与元组集不同
从
由单个元组组成的集合不是元组;MDX将它们解释为集合。某些MDX函数接受元组作为参数,如果传递单个元组集合,则会引发错误。元组和单个元组集合不可互换
至于错误消息,当您看到带有额外空格的“函数”时,它指的是查询中的一个格式错误的集合或元组,该集合或元组没有应用函数(因此在错误消息中没有函数名)
例如,如果您编写了一个类似于EXCEPT([a].[B].[C],[D].[E].[F])
的查询,并且其中一个参数无效,您将得到一个包含“函数EXCEPT…”的错误。但是,如果您只是有一个定义不正确的集合或元组,则会得到“函数”有两个空格。MSAS的错误报告似乎很差!表达式是一个单元组集(即,包含一个元组的集合,该元组是多维数据集中的一个特定成员)。这与元组集不同(令人困惑)
从
由单个元组组成的集合不是元组;MDX将它们解释为集合。某些MDX函数接受元组作为参数,如果传递单个元组集合,则会引发错误。元组和单个元组集合不可互换
至于错误消息,当您看到带有额外空格的“函数”时,它指的是查询中的一个格式错误的集合或元组,该集合或元组没有应用函数(因此在错误消息中没有函数名)
例如,如果您编写了一个类似于EXCEPT([a].[B].[C],[D].[E].[F])
的查询,并且其中一个参数无效,您将得到一个包含“函数EXCEPT…”的错误。但是,如果您只是有一个定义不正确的集合或元组,则会得到“函数”有两个空格。MSAS的错误报告似乎很差!这确实令人困惑,因为这两个查询之间似乎没有太大区别。问题在博客文章中描述:
如果用CrossJoin函数替换第一个*运算符,您会发现查询执行得很好
*只是一个以不同方式编写的交叉连接-因此,如果它以一种方式工作,而另一种方式失败-我们可以假设问题在于Analysis Services引擎如何解析*运算符。当您添加交叉连接函数时,您显式返回一个集,然后它使用*与度量值交叉连接,一切正常。在您的工作示例中,您已经使用大括号显式标识了一个集合,从而为引擎提供了继续查询所需的信息-但是当您尝试使用*处理两个成员时,它失败了。从技术上讲,每个成员都是一个集合,应该可以工作,但引擎没有以这种方式解析查询,因此失败了
上面的博文说问题在于MDX的宽大。它让我们不用强烈键入结果(即排除{}以将成员作为一个集合键入)。我自己会称之为bug。:)如果语言让我们在一个地方变得松散,那么它应该在其他地方保持一致。这确实令人困惑,因为这两个查询之间似乎没有太大区别。问题在博客文章中描述:
如果用CrossJoin函数替换第一个*运算符,您会发现查询执行得很好
*只是一个以不同方式编写的交叉连接-因此,如果它以一种方式工作,而另一种方式失败-我们可以假设问题在于Analysis Services引擎如何解析*运算符。当您添加交叉连接函数时,您显式返回一个集,然后它使用*与度量值交叉连接,一切正常。在您的工作示例中,您已经使用大括号显式标识了一个集合,从而为引擎提供了继续查询所需的信息-但是当您尝试使用*处理两个成员时,它失败了。从技术上讲,每个成员都是一个集合,应该可以工作,但引擎没有以这种方式解析查询,因此失败了
上面的博文说问题在于MDX的宽大。它让我们不用强烈地键入结果(即排除{}来键入一个成员作为一个集合)。我自己会称之为bug。:)如果语言允许我们在一个地方宽松,那么它应该在其他地方保持一致。谢谢,我知道它们是单元组集。你能更具体地说明我的查询有哪些格式错误吗?它不包括[Date].[Day of Month].&[1]
或[Sales Territory].[Sales Territory Country].&[Canada]
,如果其中一个用括号澄清,以澄清它是一个单元组集{()}
,则它不包括这两个元组。那么,如果它的格式不好,为什么它在接受哪一个方面如此不一致呢?我在我的帖子中添加了所有有效的变体。我想,如果查询的格式不正确,那么这些都不起作用?但事实上,所有这些工作