-
-
xugj831 小试身手Lv3
发表于2020-7-17 11:49
悬赏1
已解决
一个是年度的计划明细(Plan),其中有个维度是A。
一个是月度,销售明细(result),其中也包含A
需求:针对维度A,得到本年度的销售计划以及销售实际。并可以是先达成比的计算。
说在前面:只是举个例子,不能使用ETL的过程来处理,因为这两个之间的对比,有非常多的类似A的维度,同时Plan还有比较多的版本。(实在不想那么做)
实现的过程。
1. 获取这两个主题表,针对A进行浮动。得到聚合值。(这个没有什么问题)
2. 如果想得到达成比,而且是浮动表元的情况,没有得到。
尝试过程:两个主题表,设定了A字段的表连接,无法达到下面的逻辑结果。
查询逻辑思路:(这个应该也没有问题)
SQL: 两个事实表分别根据A进行group by , 然后,将这两个结果进行join
请问高手,这种场景,在报表分析中,如何实现呢?
7个回答
意思就是通过表连接,但是最后达不到效果对吧
您看我这样的设置是不是跟您的差不多,最后效果
如果您最后的效果没达到预期要求可以考虑是连接表的关键字数据是否匹配,再就是表样设计是否有问题
xxxl 发表于 2020-7-17 12:07
意思就是通过表连接,但是最后达不到效果对吧
您看我这样的设置是不是跟您的差不多,最后效果
您能把SQL粘贴处理我学习一下吗?
补充:我的的案例中,由于一个是年表,一个是月表,所以我用到了数据期参数。
xugj831 发表于 2020-7-17 12:58
您能把SQL粘贴处理我学习一下吗?
补充:我的的案例中,由于一个是年表,一个是月表,所以我用到了数据期 ...
如果一个年表一个月表的话似乎是不能够进行连接的
我找到一种可能性了,由于我的实际需求中有限制条件,开始我是放到了浮动单元的过滤条件,发现生成的sql 是先left join 表AAA,并且where 条件中有 AAA对应的过滤条件,这样出来的结果再聚合,应该就不对的。
我之后,将浮动表元的过滤条件全部取消,在值的地方用 指标 ,设定过滤条件。
我粘贴处sql 比较明显
1.
2.
第二种是符合设计思路的。
现在还有两个小疑点
1. 连接模式生效的控制的逻辑是什么?
2. 疑点在于指标的报表期参数和过滤条件
通盈的过滤语句, 我放到报表期参数还有过滤条件,都可以。这两者的区别的?
本帖最后由 缱绻 于 2020-7-17 14:12 编辑
xugj831 发表于 2020-7-17 13:28
我找到一种可能性了,由于我的实际需求中有限制条件,开始我是放到了浮动单元的过滤条件,发现生成的sql 是 ...
问题1:参考http://bbs.esensoft.com/thread-130944-1-1.html 报表内的连接模式优先级比主题集属性下的优先级高;
问题2:表元自己的过滤条件只对自己生效,,浮动维表元的过滤条件对包含在其浮动区域内的所有表元都生效,如果表元自己设置了过滤条件aa>1,浮动维表元也设置了过滤条件aa<1,,那么这个表元的过滤条件就是 aa>1 and aa<1
如果同时设置了全表的数据期条件和表元的数据期条件,那么这个表元的计算结果是表元数据期条件,全表的数据期条件没有起作用。即表元数据期条件优先级更高;
如果同时设置了数据期条件和过滤条件 那么这俩条件都会生效,是and的关系
@xxxl ,这个场景遇到一个新的问题。
1. 根据您的提示,两个表作为连接后,在分析区,只需要设定某一个主题表的关联字段作为浮动单元。
设定关联关系
2. 业务背景概要,在dm_invoicelist 中存在两个客户字段信息(cust_id,Pcust_id),可以理解是父子关系,这个分析场景需要用到pcust_id
分析区
3. 关于SQL结果: 不论我是否设定了两个表的关联关系,都group by cust_id