Oracle SQL самостоятельно включается в один оператор - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь добиться следующего. Любая помощь будет высоко оценена!

1.В первой таблице выполните самостоятельное объединение по основной сделке с соответствующей сделкой смещения 2. Во второй таблице найдите все основные сделки, цены на которые не совпадают с соответствующими офсетными сделками.

Я не думаю, что второе самостоятельное соединение работает. Это должно связать основную и офсетную сделки в таблице цен и найти случаи, когда цены не соответствуют определенным датам цен.

SELECT *
FROM transactions tran1 transactions tran2
    ,prices pr1
    ,prices pr1
WHERE tran1.tran_type = 1 --Original deal 
    AND tran2.tran_type = 2 -- Offset deal 
    AND tran1.tran_num = tran2.offset_tran_num
    AND tran1.ins_num = pr1.ins_num
    AND tran2.ins_num = pr2.ins_num
    AND pr1.ins_num = pr2.ins_num
    AND pr1.profile_num = pr2.profile_num
    AND pr1.price_date = pr2.price_date
    AND pr1.value != pr2.value

1 Ответ

1 голос
/ 05 марта 2019

Это утверждение может выиграть от использования правильного синтаксиса соединения вместо этого более старого стиля - сразу при попытке преобразовать его вы можете увидеть, что псевдоним 'pr1' используется дважды, вы намеревались использовать 'pr2'

Учитывая, что это правильно (и, возможно, вам понадобится некоторая помощь по преобразованию его в современный синтаксис), вы получите:

SELECT *
FROM transactions tran1
inner join prices pr1 on pr1.ins_num = tran1.ins_num 
inner join prices pr2 on pr2.ins_num = pr1.ins_num
                      and pr2.profile_num = pr1.profile_num 
                      and pr2.price_date = pr1.price_date
                      and pr2.value != pr1.value
inner join transactions tran2 on tran2.ins_num = pr2.ins_num 
                      and tran2.offset_tran_num = tran1.tran_num 
WHERE tran1.tran_type = 1 --Original deal
AND tran2.tran_type = 2 -- Offset deal 

Это проще для чтения, но нам потребуется больше информации, ввод + ожидаемый вывод для подтвержденияесли это то, что вы хотели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...