Это утверждение может выиграть от использования правильного синтаксиса соединения вместо этого более старого стиля - сразу при попытке преобразовать его вы можете увидеть, что псевдоним '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
Это проще для чтения, но нам потребуется больше информации, ввод + ожидаемый вывод для подтвержденияесли это то, что вы хотели.