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;
我有两个表:
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;