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表中原始?