如何解决在单个报告中结合添加和半添加事实
我正在编写季度报告。该报告应如下所示:
col | 计算 | 源表 |
---|---|---|
Start_Balance | 时间段开始时的总和 | 账户余额 |
卖出交易 | 两个时间段之间所有卖出价值的总和 | 交易 |
购买交易 | 两个时间段之间所有买入价值的总和 | 交易 |
期末余额 | 时间段结束时的总和 | 账户余额 |
所以例如
计算 | 总和 |
---|---|
Start_Balance | 1000 |
卖出交易 | 500 |
购买交易 | 750 |
期末余额 | 1250 |
这里的问题是我正在使用关系星型模式,其中一个事实是半可加的,另一个是可加的,因此它们在时间维度上的表现不同。
就我而言,我使用的是 Cognos 分析,但我认为这个问题适用于任何 BI 工具。处理这个问题的最佳做法是什么?我确定我可以提出一些 sql 查询,将这两个表组合成一个表,报告从中读取,但这似乎不是最佳实践,或者是吗?另一种方法是在 BI 工具中创建一些度量,我不是这种方法的忠实粉丝,因为它似乎是最不可持续的方法,而且我不熟悉它。
解决方法
对于 Cognos,您可以拼接表格
该技术与 Cognos 如何聚合有关
Framework manager joins 通常是 1 到 n 来描述关系
一个星型模式,中间有一个事实表,代表 N 与所有描述/分组数据的外部表,代表 1
- 事实表、定量数据、你想总结的东西应该在关系的多方面
- 描述性表格、定性数据、您想要描述或分组的内容应该在 1(而不是许多)上
为了拼接我们有多个我们想要成为事实的表格
采用您将用于分组的常用表格,例如期间(可能还有其他一些表格,例如公司或客户等)
像这样将每个事实表与公共表(又名维度)连接起来:
- Account_balance N 对 1 公司
- Account_balance N 到 1 期
- Account_balance N 对 1 客户
- 对 1 家公司进行 N 次交易
- N 到 1 个时期的交易
- 对 1 个客户进行 N 次交易
这将导致 Cognos 执行带有合并的完整外部联接
允许您处理事实表,即使它们具有不同的粒度级别
请记住,使用外连接,您可能需要处理空值,并且可能需要根据您的报告需要使用汇总过滤器
您希望在报告中包含可能与您希望报告的外观相冲突的常用表格
一个简单的解决方法是将它们添加到布局中,然后将属性设置为 box type none,这样 sql 就会按照您想要的方式运行,并且报告会以您想要的方式呈现
,您可能需要在 Framework Manager 模型中设置决定因素。以下内容很好地解释了这一点: https://www.ibm.com/docs/en/cognos-analytics/11.0.0?topic=concepts-multiple-fact-multiple-grain-queries
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。