如何在 OBIEE 11g 数据模型中有效地 "outer join" 两个数据源(SQL 查询)?

How to effectively "outer join" two data sources (SQL queries) in OBIEE 11g data model?

我在数据模型中有两个 SQL 查询,每个查询针对不同的数据源。我正在尝试 link 一个到另一个,以便创建包含所有列的报告不会排除在每个查询中不匹配的值。创建报告时,简单地 linking 元素似乎 "inner join"(不包括两个查询中不匹配的值)。在创建报告时,我基本上希望 "left join" 一个来源与另一个来源 - 我希望从另一个来源显示空值。

当我查看数据模型本身(通过数据选项卡)中的数据时,显示空值。我只是在创建报告时遇到了这个问题。

我不是 DBA,并且具有只读数据库访问权限。我无法访问任何 OBIEE 桌面工具。

Example

一个复选框:包括 NULL 值

http://obieeil.blogspot.com/2013/05/obiee-11117-include-rows-with-only-null.html

在查询 1 和查询 2 之间使用简单的左连接:

select q1.name,q2.name from  query1 q1 left join query2 q2
on q1.num=q2.num2
order by q1.name

http://sqlfiddle.com/#!4/ef642/3

NAME    NAME2
ExA1    ExB1
ExA2    
ExA3    
ExA4    
ExA5    ExB4

想通了。技巧是通过 UNION 添加一个 "dummy row" 到第二个 table 并在第一个 table 中创建一个 "dummy column" (通过 CASE WHEN column IS NULL),它使用一些占位符值空值的位置。然后,link 和 table 都使用虚拟列。这样,当两个查询 linked 时,空值不会排除在实际列中。创建报告时,只需排除虚拟列。