условие соединения с or

#oracle #oracle11g #oracle12c #oracleforms

#Oracle #oracle11g #oracle12c #oracleforms

Вопрос:

у меня есть форма, которая содержит два блока базы данных A и B. они связаны условием детализации (объединения): A.учетнаязапись=B.учетнаязапись

учетная запись имеет тип varchar2(10). она работает нормально. но проблема в том, что столбец (учетная запись) в таблице B может содержать данные длиной (5), которые равны другому столбцу в таблице A с именем (subacc).

как получить все данные в соответствии с приведенными ниже условиями: A.account = B.account или A.subacc = B.account

Комментарии:

1. Могут ли эти три столбца иметь нулевые значения ..?

2. нет, они не могут быть нулевыми

Ответ №1:

Вам нужно такое условие соединения, в котором все разделенные условия являются взаимоисключающими, следует добавить в узел Отношений основного блока данных :

  ( A.account=B.account AND LENGTH(B.account)>5 ) 
  OR ( A.subacc=B.account AND LENGTH(B.account)<=5 )
  

Поскольку все эти столбцы имеют значения not NULL, то не требуется никаких дополнительных условий для фильтрации, является ли какой-либо из столбцов нулевым.

Комментарии:

1. где записать условие? и должен ли я удалить основную детальную связь или сохранить ее

2. должно быть добавлено в узел отношений основного блока данных @user11161741