Ssas 行上使用的维度取决于成员度量

Ssas 行上使用的维度取决于成员度量,ssas,mdx,olap,Ssas,Mdx,Olap,以下是我的脚本的模型: (0) 度量成员[Revenue]与维度[Location active]相关,而度量成员[NumSignups]与维度[Location signup]相关。每个度量值与备选位置标注无关 因此,以下两项在逻辑上都是错误的,并且在每个单元格中返回相同的数字(正如预期的那样): (一) (二) 是否可以在脚本(0)中添加一些条件逻辑,以便使用一个脚本显示两个度量值?这在MDX中是不可能的。对于MDX语句,所有轴的结构都必须固定。这就像在SQL中一样,yo也不能让结果的不同行

以下是我的脚本的模型:

(0)

度量成员
[Revenue]
维度
[Location active]
相关,而度量成员
[NumSignups]
维度
[Location signup]
相关。每个度量值与备选位置标注无关

因此,以下两项在逻辑上都是错误的,并且在每个单元格中返回相同的数字(正如预期的那样):

(一)

(二)


是否可以在脚本(0)中添加一些条件逻辑,以便使用一个脚本显示两个度量值?

这在MDX中是不可能的。对于MDX语句,所有轴的结构都必须固定。这就像在SQL中一样,yo也不能让结果的不同行具有不同的列。一个SQL select语句必须在所有记录中都有一个固定列列表。 例如。SQL语句不能在第1行和第2行中包含列a、B、C,而在第3行和第4行中包含列C、D、E。你得去e。G列A、B、C、D、E对于所有四行都存在(可能为空,但无论如何都存在),因为SQL结果集定义为矩形结构。在某些编程语言中,没有“不规则数组”这样的东西,因为每一行可能有一组不同的列

同样,在MDX中,不能在几行上存在层次结构,而在另一行上不存在层次结构


相反,我将编写两条MDX语句,并根据用户选择在客户端软件中切换它们。

+1谢谢Frank。虽然在
SQL
中肯定是可能的,但我可以执行两个
CTE
语句,然后执行一个
SELECT
语句,该语句将
FULL-out连接到
CTE的结果中。或者只有一个
CTE
和一个
UNION
语句。@whytheq我澄清了我的答案。
SELECT 
  {   
    [Measures].[Revenue],
    [Measures].[NumSignups]
  } ON COLUMNS
 ,NON EMPTY 
    {
        [Date].[Calendar Year].[Calendar Year].MEMBERS*
        [Date].[Calendar Month].[Calendar Month].MEMBERS*
        {
          [Location active].[Shop Name].MEMBERS
      //[Location signup].[Shop Name].MEMBERS
        }
    } ON ROWS
FROM [OurCube]
SELECT 
  {   
    [Measures].[Revenue]
  } ON COLUMNS
 ,NON EMPTY 
    {
        [Date].[Calendar Year].[Calendar Year].MEMBERS*
        [Date].[Calendar Month].[Calendar Month].MEMBERS*
        {
          [Location signup].[Shop Name].MEMBERS
        }
    } ON ROWS
FROM [OurCube]
SELECT 
  {   
    [Measures].[NumSignups]
  } ON COLUMNS
 ,NON EMPTY 
    {
        [Date].[Calendar Year].[Calendar Year].MEMBERS*
        [Date].[Calendar Month].[Calendar Month].MEMBERS*
        {
          [Location active].[Shop Name].MEMBERS
        }
    } ON ROWS
FROM [OurCube]