Как использовать полный запрос на запись внешнего соединения для нескольких таблиц? - PullRequest
0 голосов
/ 30 января 2020

У меня есть запрос ниже

Как использовать полное внешнее объединение для TABLE T4 для получения всех записей?

WHERE       
    (DB.T4.AUTH_REV_NO=DB.T2.AUTH_REV_NO    
    AND DB.T4.AUTH_NO=DB.T2.AUTH_NO)
    AND (DB.T2.AUTH_CURR_IN='Y' )   
    AND (DB.T3.AUTH_NO=DB.T2.AUTH_NO)   
    AND (DB.T3.AUTH_REV_NO=DB.T2.AUTH_REV_NO )  
    AND (DB.T6.FNC_ID=DB.T4.FNC_ID) 
    AND (DB.T7.FNC_SEG_ID=DB.T6.FNC_SEG_ID) 
    AND (DB.T1.SCT_ID(+)=DB.T7.SCT_ID   
    AND DB.T1.FNC_SEG_ID(+)=DB.T7.FNC_SEG_ID)
    AND (DB.T8.NDE_ID=DB.T12.NDE_ID)    
    AND (DB.T7.FNC_SEG_ID=DB.T8.FNC_SEG_ID) 
    AND (DB.T7.SCT_ID=DB.T8.SCT_ID) 
    AND ((DB.T12.NDE_ID=DB.T6.NDE_STRT_ID)  
    OR (DB.T12.NDE_ID=DB.T6.NDE_END_ID))
    AND (DB.T5.FNC_ID(+)=DB.T4.FNC_ID)      
    AND (T13_A4.REF_ID(+)=DB.T5.REF_TONE_TYP_ID)        
    AND (fne.FNC_SEG_ID=DB.T8.FNC_SEG_ID)   
    AND (fne.NDE_ID=DB.T8.NDE_ID)   
    AND (fne.SCT_ID=DB.T8.SCT_ID)   
    AND fnode.NDE_ID=DB.T6.NDE_STRT_ID      
    AND tnode.NDE_ID=DB.T6.NDE_END_ID       
    AND (DB.T4.REF_FNC_TYP_ID=T13_A1.REF_ID)    
    AND (ne_port.NDE_EQP_ID=fne.NDE_EQP_ID) 
    AND (ne_port.NDE_EQP_PRN_ID=ne_card.NDE_EQP_ID) 
    AND (ne_card.NDE_EQP_PRN_ID=ne_shelf.NDE_EQP_ID)    
    AND (ne_shelf.NDE_EQP_PRN_ID=ne_rack.NDE_EQP_ID)    
    AND (eq.EQP_ID=ne_card.EQP_ID)  
    AND (eq.REF_EQP_CLS_ID=T13_A2.REF_ID)       
    AND (DB.T3.REF_AUTH_STS_ID=T13_A3.REF_ID)   
    AND (DB.T3.AUTH_STS_ID      
 IN (SELECT MAX(DB.T3.AUTH_STS_ID)  FROMDB.T3   
 WHERE   (DB.T3.AUTH_NO,DB.T3.AUTH_REV_NO)      
                IN      
                    (SELECT     
                        DB.T3.AUTH_NO,      
                        MAX(DB.T3.AUTH_REV_NO)      
                    FROM        
                        DB.T3       
                    GROUP BY        
                        DB.T3.AUTH_NO)      
                GROUP BY        
                    DB.T3.AUTH_NO))     

Как использовать полное внешнее объединение для TABLE T4 и для COLUMN FNC_TONE_LVL_QT чтобы получить все записи.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 30 января 2020

Вы опубликовали много "объединений". Я не собираюсь переписывать его для вас, но - я бы предложил вам переключиться на более поздний явный синтаксис JOIN, который делает вещи несколько проще и понятнее, когда вы отделяете объединения от условия . Более того, он позволяет вам внешнее соединение одной и той же таблицы с несколькими таблицами, что невозможно с помощью старого оператора внешнего соединения (+) Oracle.

Что-то вроде этого

select ...
from table_1 a left join table_2 b on a.id = b.id
     full outer join table_3 c on c.id = a.id
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...