[ UPDATE 문 ]

 

여러컬럼 UPDATE

 

UPDATE  table_name
  
SET ( col1, col2, col3, .. ColN ) =  ( UPDATE any_style_logical_column, ...
                                         
FROM   other_table1, ... , other_tableN
                                         
WHERE  join_conditions ...
                                         
AND    sub_query_column = main_query_column...)
WHERE  (column, ... ) IN ( UPDATE  join_column,...
                           
FROM    tables
                           
WHERE   conditions ..... )

SELECT 문을 이용한 UPDATE

 

1. UPDATE 문에는   FROM 절이 올 수 없다..
1. 배분후 잔량을 한번에 처리하는 SQL 문장...

UPDATE TBL_MNTH_DIVI_LOSS_WEIGHT a
SET    LOSS_SEPA_WEIGHT = LOSS_SEPA_WEIGHT +  
       NVL(( SELECT (X.LOSS_WEIGHT - X.LOSS_SEPA_WEIGHT_SUM )
             FROM   (
SELECT MANG_YYYYMM, MAX(DIVI_CODE_ITEM) AS DIVI_CODE_ITEM, MATR_CODE,
                             LOT_NO_MATR, LOSS_WEIGHT,
                             SUM(LOSS_SEPA_WEIGHT)AS LOSS_SEPA_WEIGHT_SUM
                      
FROM   TBL_MNTH_DIVI_LOSS_WEIGHT B
                      
WHERE  B.MANG_YYYYMM = :ls_yymm
                      
GROUP  BY MANG_YYYYMM, MATR_CODE, LOT_NO_MATR, LOSS_WEIGHT
                      
HAVING LOSS_WEIGHT       <> SUM(LOSS_SEPA_WEIGHT)  ) X
                      
WHERE  a.MANG_YYYYMM     =  x.MANG_YYYYMM
                      
AND    a.DIVI_CODE_ITEM  = x.DIVI_CODE_ITEM
                      
AND    a.MATR_CODE       = x.MATR_CODE
                      
AND    a.LOT_NO_MATR     = x.LOT_NO_MATR ), 0) ;

 
 

 

 

'(DB) Oracle > SQL' 카테고리의 다른 글

Oracle - 예제_JOIN  (0) 2017.01.18
Oracle - 예제_LEAD.LAG  (0) 2017.01.18
Oracle - 예제_SUBQUERY  (0) 2017.01.18
Oracle - 예제_SELECT_GROUP  (0) 2017.01.18
Oracle - 예제_SELECT  (0) 2017.01.18
Posted by 농부지기
,