1

我正在编写季度报告。报告应如下所示:

山口 计算 源表
开始平衡 时间段开始时的总和 账户余额
卖出交易 两个时间段之间所有卖出价值的总和 交易
购买交易 两个时间段之间所有买入价值的总和 交易
结束平衡 时间段结束时的总和 账户余额

所以例如

计算
开始平衡 1000
卖出交易 500
购买交易 750
结束平衡 1250

这里的问题是我正在使用关系星型模式,其中一个事实是半加性的,另一个是加性的,因此它们在时间维度上的行为不同。

就我而言,我使用的是 Cognos 分析,但我认为这个问题适用于任何 BI 工具。处理这个问题的最佳做法是什么?我确定我可以提出一些 sql 查询,将这两个表组合成一个表,报告从中读取,但这似乎不是最佳实践,或者是吗?另一种方法是在 BI 工具中创建一些度量,我不是这种方法的忠实拥护者,因为它似乎是最不可持续的方法,而且我不熟悉它。

4

2 回答 2

1

对于 Cognos,您可以拼接表格

该技术与 Cognos 如何聚合有关

框架管理器连接通常是 1 到 n 用于描述关系

星型模式,中间有事实表,表示 N,所有外部表描述/分组数据,表示 1

  • 事实表,定量数据,你想总结的东西应该是关系的多方面
  • 描述性表格、定性数据、您想要描述或分组的内容应该放在 1 上(而不是很多)

拼接我们有多个表格,我们想成为事实

使用您将用于分组的常用表格,例如期间(可能还有其他一些表格,例如公司或客户等)

将每个事实表与公共表(又名维度)连接起来,如下所示:

  • Account_balance N 到 1 家公司
  • Account_balance N 到 1 期间
  • Account_balance N 到 1 个客户
  • 交易 N 对 1 家公司
  • 交易 N 到 1 期
  • 交易 N 到 1 个客户

这将导致 Cognos 使用合并执行完全外连接

允许您处理事实表,即使它们具有不同的粒度级别

请记住,对于外部连接,您可能必须处理空值,并且您可能需要根据您的报告需求使用摘要过滤器

您希望在报告中包含可能与您希望报告的外观相冲突的常用表格

一个简单的解决方法是将它们添加到布局中,然后将属性设置为 box type none 以便 sql 的行为符合您的要求,并且报告看起来符合您的要求

于 2021-05-12T13:23:18.660 回答
0

您可能需要在 Framework Manager 模型中设置决定因素。以下内容很好地解释了这一点: https ://www.ibm.com/docs/en/cognos-analytics/11.0.0?topic=concepts-multiple-fact-multiple-grain-queries

于 2021-05-10T12:25:10.380 回答