MDX中的聚合问题

MDX中的聚合问题,mdx,mondrian,Mdx,Mondrian,我有一个维度表dim\u employee,其中列有employee\u id,employee\u name,部门,语言 示例数据如下所示 +-------------+---------------+-------------+----------+ | employee_id | employee_name | department | language | +-------------+---------------+-------------+----------+ |

我有一个维度表
dim\u employee
,其中列有
employee\u id
employee\u name
部门
语言

示例数据如下所示

+-------------+---------------+-------------+----------+
| employee_id | employee_name | department  | language |
+-------------+---------------+-------------+----------+
|           1 | ABC           | PROGRAMMING | JAVA     |
|           2 | BCD           | PROGRAMMING | .NET     |
|           3 | CDE           | TESTING     | JAVA     |
|           4 | DEF           | TESTING     | .NET     |
|           5 | EFG           | DESIGNING   | PHP      |
|           6 | FGH           | PROGRAMING  | JAVA     |    
|           7 | GHI           | PROGRAMING  | JAVA     |    
+-------------+---------------+-------------+----------+
我的事实表是

+-------------+----------+----------------+
| Department  | Language | Employee Count |
+-------------+----------+----------------+
| PROGRAMMING | JAVA     |              3 |
| PROGRAMMING | .NET     |              1 |
| TESTING     | JAVA     |              1 |
| TESTING     | .NET     |              1 |
| DESIGNING   | PHP      |              1 |
+-------------+----------+----------------+
在此基础上,我想得到以下统计数据:部门、语言、员工数量

因此,我创建了一个具有两个层次结构的多维数据集:部门和语言。还有一个带有计数聚合功能的测量
员工计数

现在使用以下MDX

WITH
SET [~ROWS] AS
    Hierarchize({[Dim_Dept.Hier_Dept].Members})
SELECT
NON EMPTY {[Measures].[Employee Count]} ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [MyCube]
我期望产出

+-------------+----------+----------------+
| Department  | Language | Employee Count |
+-------------+----------+----------------+
| PROGRAMMING |          |              4 |
|             | JAVA     |              3 |
|             | .NET     |              1 |
| TESTING     |          |              2 |
|             | JAVA     |              1 |
|             | .NET     |              1 |
| DESIGNING   |          |              1 |
|             | PHP      |              1 |
+-------------+----------+----------------+
+-------------+----------+----------------+
| Department  | Language | Employee Count |
+-------------+----------+----------------+
| PROGRAMMING | JAVA     |              4 |
|             | .NET     |              2 |
| TESTING     | JAVA     |              4 |
|             | .NET     |              2 |
| DESIGNING   | PHP      |              1 |
+-------------+----------+----------------+
然而,我得到的输出

+-------------+----------+----------------+
| Department  | Language | Employee Count |
+-------------+----------+----------------+
| PROGRAMMING |          |              4 |
|             | JAVA     |              3 |
|             | .NET     |              1 |
| TESTING     |          |              2 |
|             | JAVA     |              1 |
|             | .NET     |              1 |
| DESIGNING   |          |              1 |
|             | PHP      |              1 |
+-------------+----------+----------------+
+-------------+----------+----------------+
| Department  | Language | Employee Count |
+-------------+----------+----------------+
| PROGRAMMING | JAVA     |              4 |
|             | .NET     |              2 |
| TESTING     | JAVA     |              4 |
|             | .NET     |              2 |
| DESIGNING   | PHP      |              1 |
+-------------+----------+----------------+

原因可能是什么?如何解决此问题?

交叉连接应返回预期的输出:

SELECT
    {
        [Measures].[Employee Count]
    } ON COLUMNS,
    NON EMPTY 
        CROSSJOIN(
            [Dim_Dept].[Department].MEMBERS,
            [Dim_Dept].[Language].ALLMEMBERS
        )
    ON ROWS
FROM [MyCube]

交叉连接应返回预期的输出:

SELECT
    {
        [Measures].[Employee Count]
    } ON COLUMNS,
    NON EMPTY 
        CROSSJOIN(
            [Dim_Dept].[Department].MEMBERS,
            [Dim_Dept].[Language].ALLMEMBERS
        )
    ON ROWS
FROM [MyCube]

在我看来,您的两个级别没有设置正确的属性关系

两个级别是否都有各自的属性层次结构

他们之间是否建立了类似于这些级别的关系


Ref:

在我看来,您的两个级别没有设置正确的属性关系

两个级别是否都有各自的属性层次结构

他们之间是否建立了类似于这些级别的关系


参考:

看起来部门没有被考虑进去-部门和员工数量之间有关系吗?事实上,我有部门和语言。这就是你要问的吗?看看你的例子,它看起来像是在为语言ok添加员工计数-所以对于Java来说这是4(即3+1),但是当你添加部门时,它被忽略了-所以我认为部门和员工计数之间的关系在某种程度上是不正常的。我不知道我的方法有什么问题。我只是写mdx——我不参与立方体设计。你的语言和员工之间的依赖关系是否重要?您能否将此依赖关系更改为层次结构部门中的最高级别?看起来部门没有得到考虑-部门和员工数量之间是否存在关系?事实上,我有部门和语言。这就是你要问的吗?看看你的例子,它看起来像是在为语言ok添加员工计数-所以对于Java来说这是4(即3+1),但是当你添加部门时,它被忽略了-所以我认为部门和员工计数之间的关系在某种程度上是不正常的。我不知道我的方法有什么问题。我只是写mdx——我不参与立方体设计。你的语言和员工之间的依赖关系是否重要?能否将此依赖关系更改为层次结构部门中的最高级别?部门和语言都是同一层次结构下的两个级别。我认为交叉连接是不可能的。如果我把系和语言作为两个不同的维度,我可以做交叉连接。但我想要分层的图片。我更新了预期输出表以获得清晰的视图。部门和语言都是同一层次结构下的两个级别。我认为交叉连接是不可能的。如果我把系和语言作为两个不同的维度,我可以做交叉连接。但我想要分层的图片。我更新了预期输出表以获得清晰的视图。是。这两个级别之间的关系设置正确。@RavindraGullapalli…这两个级别都有单独的属性层次结构吗?在不同的dim表中是否有原始级别?是的。这两个级别之间的关系设置正确。@RavindraGullapalli…这两个级别都有单独的属性层次结构吗?标高是否在不同的dim表中原始?