Я пытаюсь написать рекурсивный CTE, чтобы дать мне всем остальным клиентам, от которых зависит «основной клиент», но я не знаю, с чего начать.
Я создал образец набора данных и структуру таблицы:
create table T_CUSTOMER_RELATIONSHIP (CUST_ID VARCHAR2(10), OTHER_CUST_ID VARCHAR2(10))
insert into T_CUSTOMER_RELATIONSHIP values ('CUST1', 'CUST1');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST1', 'CUST2');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST1', 'CUST3');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST1', 'CUST4');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST5', 'CUST5');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST5', 'CUST4');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST5', 'CUST6');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST7', 'CUST7');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST7', 'CUST6');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST8', 'CUST8');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST8', 'CUST9');
insert into T_CUSTOMER_RELATIONSHIP values ('CUST8', 'CUST10');
commit;
«Первичные» записи клиентов имеют одинаковые значения CUST_ID и OTHER_CUST_ID (так что ... CUST_ID1, CUST_ID5, CUST_ID7, CUST_ID8 являются «основными» клиентами)
Я хочу получить набор результатов для (скажем) CUST_ID1 следующим образом:
CUST_ID OTHER_CUST_ID
CUST1 CUST2
CUST1 CUST3
CUST1 CUST4
CUST1 CUST5
CUST1 CUST6
CUST1 CUST7
... что позволит мне настроить извлечениесценарий, который извлекает все детали для всех клиентов, с которыми CUST1 связан либо напрямую, либо через общие отношения с другим основным клиентом (и его связанными клиентами, отсюда и рекурсия)
Возможно ли это?