В общем, у меня есть ключ (контракт), который меняется на другой ключ подряд.Измененный ключ можно изменить, и для этого у нас есть еще один ряд.Ключ вернуться назад, как это было в начале.Мне нужна строка для первого ключа (где все это началось) и самого нового ключа (который пропускает все остальные ключи, которые были между ними).
Это создает таблицу:
CREATE TABLE CONTRACT ("NAME" VARCHAR2(20 BYTE)
,"OLD_CONTRACT" VARCHAR2(20 BYTE)
,"NEW_CONTRACT" VARCHAR2(20 BYTE)
,"NEW_CONTRACT_DATE" NUMBER(10)) ;
COMMIT;
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('John','1','10',20180101);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Ronnie','10','6',20180107);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Kim','6','1',20180128);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Nathaly','3','2',20180419);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Gorge','2','8',20180713);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Allen','8','20',20180921);
INSERT INTO CONTRACT (NAME,OLD_CONTRACT,NEW_CONTRACT,NEW_CONTRACT_DATE)
VALUES ('Tom','4','11',20170103);
COMMIT;
Вот как это выглядит
Name old_key new Key Updated date
---- ------- ------- ------------
John 1 10 20180101
Ronnie 10 6 20180107
Kim 6 1 20180128
Nathaly 3 2 20180419
Gorge 2 8 20180713
Allen 8 20 20180921
Tom 4 11 20170103
Первые 3 строки возвращают только ОДНУ СТРОКУ.
Old Key New Key
------- -------
1 1
Почему?Потому что
1 Becomes 10
10 Becomes 6
6 Becomes 1
Следующие 3 строки возвращают только ОДНУ СТРОКУ.
Old Key New Key
------- -------
3 20
Почему?Потому что
3 Becomes 2
2 Becomes 8
8 Becomes 20
Последняя строка возвращает ОДНУ СТРОКУ.
Old Key New Key
------- -------
4 11
Почему?Потому что
4 Becomes 11
Мне нужна помощь в написании запроса для этого сценария