参考如下例子
事实表和维度表关联默认情况下在逻辑层是等于连接。如果事实表无当月或者当月该区域无销额额,则该月份不会显示该区域。
数据表:
销售额 | 日期维表 | 区域维表 | ||||||
MON_WID | REGIN_WID | 销售额 | MON_WID | 日期 | REGIN_WID | 省份 | ||
1 | 1 | 111 | 1 | 202101 | 1 | 四川 | ||
2 | 2 | 111 | 2 | 202102 | 2 | 北京 | ||
3 | 2 | 333 | 3 | 202103 | 3 | 上海 |
报表如果显示的是3月数据,会出现一下结果:
月份 | 省份 | 销售额 |
202103 | 北京 | 333 |
这种情况下四川 3月份无数据,显示不出来。我们可以在逻辑层选择销售额和时间、区域维度表,修改连接方式为左连接。(还有一个办法是在编辑条件那里设置显示空行)
还有一种情况,多个事实表的情况下修改左连接依然不会显示。如多一个任务额事实表:
任务 | ||
MON_WID | REGIN_WID | 任务额 |
1 | 1 | 111 |
2 | 2 | 111 |
3 | 1 | 333 |
报表如果想要显示3月销售额和任务额,会显示为空:
月份 | 省份 | 销售额 | 任务额 |
修改任务额也为左外连接,结果一样。这是由于销售数据和任务数据两个事实表没有直接关联,这两表是通过月份和省区两个维度做关联,两个事实表会分别执行一个子查询:
月份 | 省份 | 销售额 |
202103 | 北京 | 333 |
月份 | 省份 | 任务额 |
202103 | 四川 | 333 |
然后两个表再用月份和省份做关联(默认情况是等于连接),如果存在相同维度的就能关联上,销售额和任务额也都能显示。如果是以上情况,无相同维度关联不上会显示为空。
这种情况下设置外连接和设置显示空行都不一定会有效果。
这时候需要在高级里面选下显示不相关维度
(注意不是所有版本都有这个选项,也可能是位置不一样我没找到。截图是11.1.1.9版本)
选择之后显示结果:
月份 | 省份 | 销售额 | 任务额 |
202103 | 四川 | 333 | |
202103 | 北京 | 333 |