BO中扇形陷阱的处理

问题:扇形陷阱导致报表生成数据不准确
结构:引起扇形陷阱的UNIVERSE设计结构通常如下图
bb
这种结构通常情况下是不会产生扇形陷阱的。当一个查询包含一个B表上的度量,C表中的一个对象(任何对象,不论维度还是度量),这时产生的结果将会是错误的。什么时候陷阱会产生呢?由于数据库的设计,B表中的某一列保留数据值(是一个汇总的值),是C表中对应的列的汇总,这时陷阱出现了。

理解下什么是扇形陷阱,在如下的UNIVERSE结构中
bb扇形陷阱可能出现在查询中。the fan trap problem becomes apparent in a query  that aggregates both an object  based on the sale_total column in the sale table,and an object based on the sale_qty column in the sale_model table.
bb


这当中到底发生了什么?
当执行第一个查询时,度量measure正确的被聚合,并且只是从一张表聚合。第二个是错误的,原因在于返回的数据,从两张表进行聚合

bb
因为model_id的原因,本来应该只有一条数据的记录变成了两条,在聚合的时候值变大了,产生错误。
处理办法:
1.修改UNIVERSEsql参数(不推荐)
2.使用别名和上下文

以上面的案例来说明常见处理办法 :

bb

universe结构修改后应该如下:
bb


fj.pngfan1.jpg

fj.pngfan2.jpg

fj.pngfan3.jpg

fj.pngfan4.jpg

fj.pngfan5.jpg

fj.pngfan6.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-677991/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15720542/viewspace-677991/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值