加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

关于ALL表和SUM表之间的聚合关系与BIEE出数据方式

发布时间:2020-05-23 05:28:02 所属栏目:程序设计 来源:互联网
导读:关于ALL表和SUM表之间的聚合关系与BIEE出数据方式 SUM表是ALL表关于某一个字段或者多个字段的聚合,SUM表中的数据颗粒度更大,检索速度更加的快。 在BIEE中经常地使用到ALL表和SUM表。最近在佳通项目中遇到一个问题:在一个逻辑表中有6个源表来自物理层,如下

关于ALL表和SUM表之间的聚合关系与BIEE出数据方式

SUM表是ALL表关于某一个字段或者多个字段的聚合,SUM表中的数据颗粒度更大,检索速度更加的快。

在BIEE中经常地使用到ALL表和SUM表。最近在佳通项目中遇到一个问题:在一个逻辑表中有6个源表来自物理层,如下表:

理想的出数据的方式为:

如果仅需要ITEM_TYPE级别的实际数据,则BIEE从ACTUAL_SUM出数据;

如果仅需要ITEM_TYPE级别的预算数据,则BIEE从BUDGET_SUM出数据;

如果需要ITEM_TYPE级别的实际数据+预算数据,则BIEE从SUM_ALL出数据。

但是,结果却是不管是需要ITEM_TYPE级别的实际数据还是预算数据,BIEE都从ALL_ALL出数据。百思不得其解啊!

但是,经过反复的比较,我发现以上六张表中的字段存在差异,如下表:

我们对比三张ALL表ALL_ALL、BUDGET_ALL、ACTUAL_ALL发现ALL_ALL中不存在ITEM_TYPE字段,然后,我在ALL_ALL的物理层中添加ITEM_TYPE字段(首先,我修改数据库中的ALL_ALL表,后来我把数据库中的ALL_ALL表中的ITEM_TYPE删除,结果依然正确!爽),并在逻辑表中完成映射。从新查询问题解决了!!

经过反复的试验以及和同事之间讨论,我得出SUM表在做聚合的时候,SUM表中的字段只能是ALL中字段的真子集,也就是说SUM表中不能存在ALL中没有的字段。

同时,我也推断,BIEE是按照由ALL到SUM的顺序进行出数据的。具体的说来,BIEE首先查看ALL表中的字段,然后检查SUM中的字段,如果SUM表中的字段为ALL表中字段的真子集,那么,从SUM表出数据,否则从ALL表出数据。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读