SSAS-在行上显示度量值

SSAS-在行上显示度量值,ssas,mdx,Ssas,Mdx,一般来说,我对MDX和SSA都是新手。我正在尝试以一个漂亮的表格形式获取所有度量值和日期。比如: ╔═════════╦══════╦═══════╗ ║ Measure ║ Date ║ Value ║ ╠═════════╬══════╬═══════╣ ║ Meas1 ║ D1 ║ 3 ║ ║ Meas1 ║ D2 ║ 8 ║ ║ Meas1 ║ D3 ║ 9 ║ ║ Meas2 ║ D1 ║ 7 ║ ║ Meas2 ║

一般来说,我对MDX和SSA都是新手。我正在尝试以一个漂亮的表格形式获取所有度量值和日期。比如:

╔═════════╦══════╦═══════╗
║ Measure ║ Date ║ Value ║
╠═════════╬══════╬═══════╣
║  Meas1  ║   D1 ║     3 ║
║  Meas1  ║   D2 ║     8 ║
║  Meas1  ║   D3 ║     9 ║
║  Meas2  ║   D1 ║     7 ║
║  Meas2  ║   D2 ║     4 ║
╚══...════╩═══..═╩═══...═╝
我想在行轴上做交叉连接,但不确定在列轴上放什么


有什么建议吗?

您可以将未使用的任何层次结构的默认成员放在列轴上。如果你的立方体中有e。G层次结构
[Geography].[City]
,具有默认成员
[Geography].[City].&[All]
,您的查询可能如下所示:

SELECT [Geography].[City].&[All]
       ON COLUMNS,
       { [Measures].[Meas1], [Measures].[Meas2] }
       *
       { [Date].[Month].[D1], [Date].[Month].[D2], [Date].[Month].[D3] }
       ON ROWS
  FROM [YourCube]
SELECT {}
       ON COLUMNS,
       { [Measures].[Meas1], [Measures].[Meas2] }
       *
       { [Date].[Month].[D1], [Date].[Month].[D2], [Date].[Month].[D3] }
       ON ROWS
  FROM [YourCube]
实际上,问题是MDX中的轴必须具有正确的顺序,如果没有包含之前的所有轴,则查询中可能没有轴。因为列轴是第二个轴(编号为1,因为列轴的编号从0开始),所以列轴必须在那里。因此,问题是必须在列轴中放置一个非空集。由于始终存在一个隐式切片器轴,其中包含查询中未提及的所有层次结构的默认成员(通常为
All
成员),此解决方案的思想是将任意这些列移动到列轴,使其成为非空集,而不改变结果-如果使用e,则会发生这种情况。g<代码>[Geography].[City].成员,因为这样会显示按城市细分的值

如果您想将度量值和日期放在列轴中,这会更容易,因为这是第一个轴。那么查询可能是:

SELECT { [Measures].[Meas1], [Measures].[Meas2] }
       *
       { [Date].[Month].[D1], [Date].[Month].[D2], [Date].[Month].[D3] }
       ON COLUMNS
  FROM [YourCube]
如果您不需要这些值,您可以在如下列上使用空集:

SELECT [Geography].[City].&[All]
       ON COLUMNS,
       { [Measures].[Meas1], [Measures].[Meas2] }
       *
       { [Date].[Month].[D1], [Date].[Month].[D2], [Date].[Month].[D3] }
       ON ROWS
  FROM [YourCube]
SELECT {}
       ON COLUMNS,
       { [Measures].[Meas1], [Measures].[Meas2] }
       *
       { [Date].[Month].[D1], [Date].[Month].[D2], [Date].[Month].[D3] }
       ON ROWS
  FROM [YourCube]
但是,您只需要在列中包含行标题和nor value列


注意,从MDX的概念来看,查询可以有零、一、二、三或更多轴。只是包括SSM在内的大多数客户端工具都难以显示具有两个以上轴的结果集。但这是客户端工具的限制,而不是MDX。

是“度量”列是度量的名称,是“值”列是度量的值吗?@Meff,是的,就是这样!你用什么客户端来显示查询结果?我在SSMS中运行查询只是为了让我在MDX中变得更好,这个查询到底在做什么?这毫无意义…@user2755428我扩展了我的答案,详细解释了解决方案的基本原理。