这是我的剧本的模拟:
(0)
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]
“度量”成员[Revenue]
与Dimension
[Location active]
相关,而“度量”成员[NumSignups]
与Dimension
[Location signup]
相关。每个度量与替代位置维度无关。
所以以下两个都是逻辑错误的,并在每个单元格中返回相同的数字(这是预期的):
(1)
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]
(2)
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]
是否可以在脚本(0)中添加一些条件逻辑,以便我可以使用一个脚本显示这两个度量?
答案 0 :(得分:2)
这在MDX中是不可能的。必须修复所有轴的结构以修复MDX语句。这就像在SQL中,你也不能有不同的结果行来拥有不同的列。一个SQL select语句必须在所有记录中都有一个修复列列表。 E. g。你不能拥有第1行和第2行中包含A,B,C列的SQL语句,但第3行和第4行中包含C,D,E列。您必须使用e。 G。对于所有四行,列A,B,C,D,E存在(可能为空,但总是存在),因为SQL结果集被定义为矩形结构。没有像#34;参差不齐的阵列那样的东西。在某些编程语言中,每行可能有不同的列集。
同样,在MDX中,您不能在几行上存在层次结构,也不能在另一行存在。
我会写两个MDX语句,并根据用户的一些选择在客户端软件中切换它们。