У нас есть таблица partners
, и я хотел SQL-оператор, который будет возвращать строки 5 и 6 на основе данных примера ниже. Логика заключается в том, что каждый partner2
будет иметь по умолчанию один partner1
, который определяется полем XDFREL
, имеющим значение X
.
В некоторых случаях XDFREL
имеет более 1 заполненного, например, для partner1 = 08021262
в строках 5 и 6. Мне нужны все записи из этой таблицы (не считая), где XDFREL
больше 1 для каждого partner2
. Примером результата является то, что он будет возвращать записи из строк 5 и 6 ... потому что partner2 08021262
имеет две записи в поле partner1
, где XDFREL
имеет заполненный X
.
Заранее спасибо
No| Partner1| Partner2| DateFrom| DateTo | XDFREL
01| 07380858| 08021262| 2/1/2018| 12/31/9999|
02| 07342746| 08021262| 2/1/2017| 12/31/9999|
03| 07342744| 08021262| 8/7/2017| 12/31/9999|
04| 07340195| 08021262| 5/4/2017| 12/31/9999|
05| 07100325| 08021262| 1/1/2001| 12/31/9999| X
06| 07073790| 08021262| 2/1/2017| 12/31/9999| X
07| 07517785| 08427151| 8/7/2017| 12/31/9999| X
08| 07517786| 08427152| 8/8/2017| 12/31/9999| X
09| 07517787| 08427152| 8/8/2017| 12/31/9999|
Я могу получить счет, но мне нужно фактическое значение partner1
select count(B5.PARTNER1), B5.PARTNER2
from partners B5
where B5.XDFREL = 'X'
and TO_DATE(B5.DATE_TO , 'YYYYMMDD') > TRUNC(sysdate)
group by B5.PARTNER2
having count(B5.PARTNER1) > 1