Oracle - выбор уникального идентификатора по нескольким критериям - PullRequest
0 голосов
/ 31 мая 2018

У меня есть требование.Может кто-нибудь помочь?

У меня есть эта таблица:

__________________________________________________________________________________________
UNIQUE_ID   POLICY_SOURCE   POLICY_NUMBER   REFERRED_POLICY_SOURCE  REFERRED_POLICY_NUMBER
1234        custom          AJ123           main                    BH125
1234        main            BH125           custom                  AJ123
2345        dwell           BH125           custom                  HQ658
__________________________________________________________________________________________

Теперь мне нужно получить UNIQUE_ID для POLICY_NUMBER, где POLICY_NUMBER не связаны как REFERRED_POLICY_NUMBER по отдельности.

т. е.

  • В приведенной выше таблице первое поле, политика AJ123 с UNIQUE_ID 1234, имеет BH125 как REFERRED_POLICY_NUMBER.
  • BH125 имеет две записи, с UNIQUE_ID 1234 и 2345. Но BH125 сUNIQUE_ID связан с AJ123.Так что это не должно отображаться.
  • Но BH125 с UNIQUE_ID имеет другую политику HQ658 как REFERRED_POLICY_NUMBER.Эта запись должна быть извлечена.

Мне нужно получить результат в следующем формате:

___________________________________________________________
UNIQUE_ID1  POLICY_NUMBER1  UNIQUE_ID2  POLICY_NUMBER2
1234        AJ123           2345        BH125
___________________________________________________________

Короче говоря, две политики связаны, нос разными UNIQUE_ID с.

То, что я пробовал до сих пор:

SELECT UNIQUE_ID, POLICY_NUMBER, REFERRED_POLICY_NUMBER FROM TABLE WHERE REFERRED_POLICY_NUMBER IN (SELECT POLICY_NUMBER FROM TABLE);

Я получил записи, где REFERRED_POLICY_NUMBER в POLICY_NUMBER.Удивлен, как получить UNIQUE_ID всех этих.

Любая помощь будет очень полезна.

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете попробовать что-то вроде этого:

SELECT table1.UNIQUE_ID AS UNIQUE_ID1, 
       table1.POLICY_NUMBER AS POLICY_NUMBER1,
       table2.UNIQUE_ID AS UNIQUE_ID2, 
       table2.POLICY_NUMBER AS POLICY_NUMBER2
FROM mainTable table1
     JOIN mainTable table2
     ON table1.REFERRED_POLICY_NUMBER= table2.POLICY_NUMBER
        AND table2.REFERRED_POLICY_NUMBER <> table1.POLICY_NUMBER
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...