[답변] Merge Into 0 1 4,910

by 마농 Merge [2009.03.02 16:55:58]


MERGE INTO table_master m
USING (SELECT id
            , str_cd
            , slip_no
            , SUM(tot_qty) AS tot_qty
            , SUM(tot_amt) AS tot_amt
            , sysdate      AS reg_date
         FROM table_detail
        WHERE slip_no = vSlip_no
          AND str_cd  = vStr_cd
          AND id      = vId
        GROUP BY id, str_cd, slip_no
       ) d
   ON (m.slip_no = d.slip_no AND
       m.str_cd  = d.str_cd  AND
       m.id      = d.id      )
 WHEN MATCHED THEN
      UPDATE SET m.tot_qty  = d.tot_qty
               , m.tot_amt  = d.tot_amt
               , m.reg_date = d.reg_date
 WHEN NOT MATCHED THEN
      INSERT (  id,   str_cd,   slip_no,   tot_qty,   tot_amt,   reg_date)
      VALUES (d.id, d.str_cd, d.slip_no, d.tot_qty, d.tot_amt, d.reg_date)
;

by 살찐강시 [2009.03.02 16:59:10]
아~ 제가 MERGE문에 대해 잘못알고 있었네요..
역시 마농님이십니다. 자세한 답변 정말 감사해요 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입