mdx交叉连接尺寸和测量值
我是MDX新手,看看这个查询,为什么[Top Product Sales]中交叉联接中的项(0)只返回Internet销售额?交叉连接不是应该返回一组(产品、互联网销售额)吗?那么,为什么项目(0)返回的是互联网销售额,而不是产品mdx交叉连接尺寸和测量值,mdx,Mdx,我是MDX新手,看看这个查询,为什么[Top Product Sales]中交叉联接中的项(0)只返回Internet销售额?交叉连接不是应该返回一组(产品、互联网销售额)吗?那么,为什么项目(0)返回的是互联网销售额,而不是产品 WITH MEMBER [Measures].[Top Product Sales] AS { EXISTING TopCount( [Product].[Product].[Product].Members,
WITH
MEMBER [Measures].[Top Product Sales] AS
{
EXISTING
TopCount(
[Product].[Product].[Product].Members,
1,
([Measures].[Internet Sales Amount])
) *
{[Measures].[Internet Sales Amount]}
}.Item(0)
,FORMAT_STRING="Currency"
SELECT
{
([Measures].[Internet Sales Amount]),
([Measures].[Top Product Sales])
} ON COLUMNS,
{
([Date].[Calendar Year].[CY 2005]),
([Date].[Calendar Year].[CY 2006]),
([Date].[Calendar Year].[CY 2007]),
([Date].[Calendar Year].[CY 2008])
} ON ROWS
FROM [Adventure Works]
如果我运行下面的查询,我会从两个维度(产品和互联网销售额)得到一个集合,这对我来说是有意义的,但是为什么上面的交叉连接只返回互联网销售额呢
WITH
set x AS
{
TopCount(
[Product].[Product].[Product].Members,
1,
([Measures].[Internet Sales Amount])
) *
{[Measures].[Internet Sales Amount]}
}
SELECT
{} ON COLUMNS,
x ON ROWS
FROM [Adventure Works]
事实上,查询中的项(0)
返回一个由乘积和度量值组成的元组。但是您的第一个SELECT
语句不使用该元组,而是使用[Measures].[Top Product Sales]
,它不是元组,而是单个层次结构,即度量层次结构的成员。您在WITH
子句中定义了它,以便在每次对其求值时传递元组的值,但它不是元组的别名。在WITH MEMBER
子句中使用任何表达式都会将其转换为简单成员
在Analysis Services中,您只能使用子句在
中创建成员和集合,而不能创建元组。谢谢您的回复。但它没有回答我的问题。我的问题是,为什么项(0)只返回度量值,而不返回顶级产品或其他?按定义项函数“返回集合中的元组”。这里返回的元组是(产品、互联网销售额),那么为什么在这种情况下它只返回互联网销售额呢?@Thotwield实际上,我回答了你的问题:Item(0)
返回一个元组,但是在WITH MEMBER
子句中使用它将元组转换为一个简单的成员。这似乎是某种隐藏的规则,因为我在任何地方都找不到它的文档。