Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mdx交叉连接尺寸和测量值_Mdx - Fatal编程技术网

mdx交叉连接尺寸和测量值

mdx交叉连接尺寸和测量值,mdx,Mdx,我是MDX新手,看看这个查询,为什么[Top Product Sales]中交叉联接中的项(0)只返回Internet销售额?交叉连接不是应该返回一组(产品、互联网销售额)吗?那么,为什么项目(0)返回的是互联网销售额,而不是产品 WITH MEMBER [Measures].[Top Product Sales] AS { EXISTING TopCount( [Product].[Product].[Product].Members,

我是MDX新手,看看这个查询,为什么[Top Product Sales]中交叉联接中的项(0)只返回Internet销售额?交叉连接不是应该返回一组(产品、互联网销售额)吗?那么,为什么项目(0)返回的是互联网销售额,而不是产品

    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
子句中使用它将元组转换为一个简单的成员。这似乎是某种隐藏的规则,因为我在任何地方都找不到它的文档。