SQL 更新以部分同步两个不同表中的两列

SQL update to partially synchronise two columns in two different tables

我有两个表:

Table 1: S490JR
USER         ROCOMP ROSUPC  REFID          QREADSTAT                 
MARQUEE  AQUA     E31       4081200201      1                        
MARQUEE  AQUA     E31       4102700301      1                        
TENNYSON AQUA     E34       4102101701      0                        
TENNYSON AQUA     E34       4102704501      0                        


    and table2: AB27PR                                         

USER      XCCOMP    XCSUPN  XEFID        XREADSTAT                   
MARQUEE AQUA      E31       4081200201  0                          
MARQUEE AQUA      E31       4081200201  0                          
MARQUEE GBRT      A183    50129004    0                          
MARQUEE GBRT      A205    50126025    0  

如果 S490JR.USER 与 AB27PR.USER 匹配,并且 ROCOMP 与 XCCOMP 和 REFID 与 XEFID 匹配,那么仅当 XREADSTAT 为 0 且QREADSTAT 为 1.

你可以使用MERGE

merge into AB27PR AB
    using (select USER, ROCOMP,REFID
             from S490JR
            where QREADSTAT =1) SR
    on
       (AB.USER= SR.ORDER_ID
        AND AB.XCCOMP = SR.ROCOMP
        AND AB.XEFID = SR.REFID )
    when matched 
     and AB.XREADSTAT = 1
    then update set XREADSTAT = SR.QREADSTAT;