У меня есть запрос - мне нужно иметь период меньше, чем valid_to, если ou_code = 'OU140'
и acc_lev6_code = 'A4900'
.Как написать это заявление sql без NOT?
Мой запрос возвращает правильные результаты, но я просто хочу написать его без NOT
. Я просто не могу понять это, потому что, если я напишу заявление, что период меньше valid_to
, я не могу написать заявление, которое сделает данные более широкими. Редактировать: не используя ИЛИ?
with table1 (ou_code, acc_lev6_code, period, valid_to) as (
select 'OU140', 'A4900', 201509, 201506 from dual union all
select 'OU140', 'A4900', 201510, 201505 from dual union all
select 'OU150', 'A4900', 201509, 201506 from dual union all
select 'OU165', 'A5200', 201509, 999999 from dual union all
select 'OU100', 'A5000', 201509, 201503 from dual union all
select 'OU150', 'A4900', 201609, 201506 from dual union all
select 'OU100', 'A5000', 201509, 999999 from dual union all
select 'OU100', 'A4900', 201509, 201506 from dual union all
select 'OU140', 'A5000', 201509, 999999 from dual
)
select
*
from table1 a
where
NOT (a.period >= a.valid_to AND NOT(a.acc_lev6_code='A4900' AND a.ou_code='OU140'))
Почему вы хотите написать его без НЕ или ИЛИ? Неясно, что вы подразумеваете под «сделать набор данных более широким»] – Ben