MDX 如何获得子组的总和?

MDX how to get total sum for sub groups?

我有如下 MDX 查询:

SELECT
NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS,
NON EMPTY { ([Customer].[City].[City] * [Customer].[Gender].[Gender] ) } ON ROWS
FROM [Analysis Services Tutorial]

如您所知,此 MDX 查询得到以下 table 结果:

|---------------------|-----------|---------------|
|        City         |   Gender  |  Sales Amount |
|---------------------|-----------|---------------|
|     Ballard         |     F     |    300        |
|---------------------|-----------|---------------|
|     Ballard         |     M     |    500        |
|---------------------|-----------|---------------|
|     Berkeley        |     F     |    200        |
|---------------------|-----------|---------------|
|     Berkeley        |     M     |    100        |
|---------------------|-----------|---------------|
                      .
                      .
                      .

但我需要 table 这样的小计:

|---------------------|-----------|---------------|
|        City         |   Gender  |  Sales Amount |
|---------------------|-----------|---------------|
|     Ballard         |     F     |    300        |
|---------------------|-----------|---------------|
|     Ballard         |     M     |    500        |
|---------------------|-----------|---------------|
|     Ballard         |    All    |    800        |
|---------------------|-----------|---------------|
|     Berkeley        |     F     |    200        |
|---------------------|-----------|---------------|
|     Berkeley        |     M     |    100        |
|---------------------|-----------|---------------|
|     Berkeley        |    All    |    300        |
|---------------------|-----------|---------------|
                      .
                      .
                      .

有没有关于在 MDX 中执行此操作的建议?任何帮助,将不胜感激。谢谢

你能试试这个查询吗

SELECT
NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS,
NON EMPTY { ([Customer].[City].[City] * [Customer].[Gender].allmembers ) } ON ROWS
FROM [Analysis Services Tutorial]

您通常需要使用allmembers 才能显示All 成员。如果那不是 return All 成员,那么您需要这样计算它

WITH Member [Customer].[Gender].[All Genders] AS [Customer].[Gender].&[M] + 
                                                 [Customer].[Gender].&[F] 
SELECT
NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS,
NON EMPTY { ([Customer].[City].[City] * [Customer].[Gender].allmembers ) } ON ROWS
FROM [Analysis Services Tutorial]

您可以添加 ALL 成员:

SELECT
NON EMPTY [Measures].[Sales Amount] ON COLUMNS,
NON EMPTY [Customer].[City].[City].Members * {[Customer].[Gender].[Gender].Members + [Customer].[Gender].[All]} ON ROWS
FROM [Analysis Services Tutorial]

或性别层次结构的所有成员:

SELECT
NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS,
NON EMPTY [Customer].[City].[City].Members * [Customer].[Gender].Members ON ROWS
FROM [Analysis Services Tutorial]