Мы используем Оби 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'
Если это так, это работает, но я не знаю, как заставить это в моем анализе. Кто-нибудь может мне помочь?