0

可悲的是,我没有想法。我目前正在学习 COGNOS 分析,我可以使用您的帮助。我有一个看起来像这样的交叉表,来自使用相同源结构的不同系统。我使用公司帐户并且是用户,所以我不能编写 SQL 或任何脚本!

        MIS0 MIS1 MIS3 MIS6
2016    0,0  0,1  0,3  0,6
2017    0,0  0,1  0,4  0,7
2018    0,0  0,2  0,4  0,7

我在 COGNOS 中复制了这一点,但无法正确处理一件事(这比这要困难得多,但我认为这是核心)

解释:

  • MIS = 服务月数
  • 年 = 产品制造年份
  • 值=(故障/制造(当年)和销售的产品)* 1000

故障具有属性 MIS = 它发生在哪个 MIS 中,产品也具有类似于 dateOfManufacture 的属性

好的,所以问题...拥有例如 MIS6 意味着:自购买后 6 个月内发生的故障。复杂的开始,MIS3故障在逻辑上也属于MIS6故障。

所以我需要创建数据元素或过滤器或其他一些技巧,使我能够:从 0 到 X 选择与 MIS 相关的故障,其中 X 将是列标题中的数字 (0,1,3,6.. .) 当然基于制造年份.. 我受到我的用户权利的限制,所以如果你有一个包含编写脚本的建议,谢谢,你滚!:) 但我将无法通过脚本来做到这一点。请原谅缺乏细节,但命名变量或任何代码是我受约束的机密性的一部分。:(

谢谢你的时间,周末愉快!

Fault
MIS: 2
ProductID: <121212>

Product
ProductID: <121212>
Date of assembly: 25.02.2020
(MIS: gets copied to product fault when fault occours)

表应该查看在服务的特定月份内发生的故障 - 这意味着如果故障如上例所述在服务 2 个月内,则应将其计算到 MIS3 和 MIS6 列中,而不是计算到 MIS1 和 MIS0 统计信息中,因为故障不是在 1 个月内发生,而是在 2 个月内发生。

基本上,例如第一行第二列说:找到我在 2016 年生产的产品 - 计算他们在服务的第一个月有多少故障。这个数字除以您找到的产品数量(第一句),所有这些乘以 1000(故障/1000) 现在您可能会看到当您移动到同一行的下一列时会出现问题。-> 查找 2016 年生产的产品。计算它们在 3 个月的服务中出现了多少故障(= 包括 1、2、3),然后除以生产的产品数量 - 乘以 1000。

当我设置交叉表时,我需要使用具有浮动最大值的 inteval (MIS0 - MIS1,3,6),但我没有大脑去做..

4

1 回答 1

0

首先尝试使用列表。如果可行,我们可以将列表转换为交叉表

让我们首先将上下文中的指标与时间隔离开来

这将是您的第一列

一个月。创建一个数据项 [Month 1 Faults],如下所示:

if ([Year] = 2016 and [Month] = 1)Then([Faults])Else(0)

下一列是第 1 个月和第 2 个月。我们添加函数 IN(1,2) 来完成此操作

创建一个数据项 [Month 1 & 2 Faults],如下所示:

if ([Year] = 2016 and [Month] IN(1,2))Then([Faults])Else(0)

对所有其他数据项重复此逻辑

于 2020-08-31T19:22:34.530 回答