У меня есть огромный sql, который написан в старом коде соединения, и я пытаюсь изменить его на ANSI-соединение, я не вставляю запрос выбора и просто вставил условие соединения для простоты. Соединение ANSI не производит любые данные, но старый делает.
Вот мой старый стиль соединения
select *****
from CHECKING_EXT_CASH_FLW_REP CS, OTP_ALL_REP TP_REP ,
(select M_LABEL,min(M_ALT_ID) as M_ALT_ID from ING_ALIAS_REP where M_ALT_SYS=@CtpAlternateSystem:C group by M_LABEL) CA,
(select M_LABEL,min(M_ALT_ID) as M_ALT_ID from ING_ALIAS_REP where M_ALT_SYS=@PtfAlternateSystem:C group by M_LABEL) PA
where TP_REP.M_REF_DATA=CS.M_REF_DATA
and TP_REP.M_TP_PFOLIO=CS.M_TP_PFOLIO
and TP_REP.M_NB=CS.M_NB
and CA.M_LABEL(+)=TP_REP.M_TP_CNTRPID
and PA.M_LABEL(+)=TP_REP.M_TP_PFOLIO
and CS.M_F_OBSCOM ='N'
Я пытался преобразовать его в ANSI соединение и ниже код
select **********
from OTP_ALL_REP TP_REP
JOIN CHECKING_EXT_CASH_FLW_REP CS ON (TP_REP.M_REF_DATA=CS.M_REF_DATA and TP_REP.M_TP_PFOLIO=CS.M_TP_PFOLIO and TP_REP.M_NB=CS.M_NB )
RIGHT OUTER JOIN (select M_LABEL,min(M_ALT_ID) as M_ALT_ID from ING_ALIAS_REP where M_ALT_SYS=@CtpAlternateSystem:C group by M_LABEL) CA ON( CA.M_LABEL=TP_REP.M_TP_CNTRPID )
RIGHT OUTER JOIN (select M_LABEL,min(M_ALT_ID) as M_ALT_ID from ING_ALIAS_REP where M_ALT_SYS=@PtfAlternateSystem:C group by M_LABEL) PA ON (PA.M_LABEL=TP_REP.M_TP_PFOLIO)
Старый код работает, но последний - нет, есть ли какая-то вещь, по которой я упускаю или у меня есть проблемы с моим преобразованием все вместе.