Нужен фильтр на левом внешнем соединении, чтобы быть в соединении, а не в месте, где в OBIEE - PullRequest
0 голосов
/ 08 ноября 2018

Мы используем Оби 11г.

В моем репозитории (RPD) я соединил две таблицы с левым внешним соединением (в частности, таблица Person слева соединяет таблицу address).

В своих анализах я беру некоторую информацию о человеке и некоторую информацию об адресе. Я делаю фильтр на женщин и получаю всех женщин, даже если у них нет адреса.

Но я хочу видеть только типы адресов 'HOME', поэтому я решил добавить в свои анализы фильтр на addressType='HOME' OR addressType is null. К сожалению, я больше не понимаю всех женщин. Я получаю только женщин с адресом типа HOME.

Когда я смотрю на сгенерированный запрос, я вижу:

select person.emplid,addr.address_type,addr.address3 from 
person
LEFT JOIN address addr
on person.emplid=addr.emplid
WHERE person.sex='female'
        AND ( address_type IN ('HOME')
                OR
              address_type IS NULL)

Я вижу, что фильтр address_type вставлен в предложение WHERE, но здесь я хочу, чтобы он был установлен в предложении ON LEFT JOIN следующим образом:

select person.emplid,addr.address_type,addr.address3 from 
person
LEFT JOIN address addr
on person.emplid=addr.emplid
AND ( address_type IN ('HOME')
                OR
              address_type IS NULL)
WHERE person.sex='female'

Если это так, это работает, но я не знаю, как заставить это в моем анализе. Кто-нибудь может мне помочь?

...