0

我想知道 Cognos Framework Manager 是否具有像 Dynamic Cubes 中的内置函数“Last”

或者有人知道如何建模以下案例:

我们有两个维度 - 一个包含年、半年、季度和月的时间维度,另一个维度根据人们参与项目的时间长短(1-30 天、31-60 天、60-180、180 -365 ,1-2 年,+2 年)。然而,时间维度级别(年、半年等)的选择会影响其他维度的分类)。

一个例子:

一个人从 2018 年 11 月 15 日到 2020 年 6 月 30 日参加了一个项目。cognos 用户将时间维度用于年份级别,因此将显示 2018、2019 和 2018。

对于 2018 年,此人将属于 31-60 天类别,因为 46 天已经过去,直到 2018 年 12 月 31 日。对于 2019 年,此人将被列为 1-2 年类别,因为自 2019 年 12 月 31 日起已经过去了 46 + 365 天。到 2020 年,这个人也将属于该类别,因为 46 + 365 + 180 天已经过去了。

如果用户选择另一个时间维度级别,例如半年,类别将发生变化:

  • 2018 年第二届 HY:31-60(46 天过去)
  • 2019 年第一届:180-365 天(46 + 180 --> 2019 年结束)
  • 第二届 HY 2019:1-2 年(46 + 180 + 180)
  • 第一届 HY 2020:1-2 年(46 + 180 + 180 + 180)

有人知道如何根据另一个维度(这里是时间维度)的选择来建模动态维度类别吗?

事实表包含月度数据,对于上面提到的人员,将有 20 条单独的记录(2018 年 11 月至 2020 年 6 月之间的每个月)。

4

1 回答 1

0

在任何时期,一个人可能在也可能不在一个项目上工作。

在不确切知道您的数据和元数据是什么的情况下,制定一个精确的解决方案会有些困难,但该方法可能有点类似于退化维度场景。

您可能希望将项目维度建模为事实和维度。您将在它与时间以及您需要的任何其他维度之间建立关系。

根据数据和元数据,您可能需要做一些体操才能到达那里。

如果数据的形式与此类似,那将不会太困难。这是一个示例,可让您了解解决问题的一些方法。

Date_Key   Person_Key   Project_Key   commitment_status, which would be the measure.
20200101    1                 1                      1
20200101    1                 2                      0
20200101    1                 3                      0
20200102    1                 1                      1
20200102    1                 2                      0
20200102    1                 3                      0
20200103    1                 1                      0
20200103    1                 2                      1
20200103    1                 3                      0

在上面,人 1 在项目 1 上工作了 2 天,然后在项目 2 上工作了一天。通过聚合承诺状态(通过设置聚合规则属性来完成),无论您在查询中设置的时间段如何,您都可以确定一个人从事项目工作的天数。

于 2020-10-19T18:24:11.420 回答