通过比较两个 table 更新 SQL 查询

Update SQL query by comparing two table

如何通过比较两个表来更新 sql 列中的查询?这可能是重复的问题,但仍然无法解决我的问题。任何帮助将不胜感激。

到目前为止我已经尝试过,但是错误

UPDATE b SET b.STAMP = b.STAMP + 10 FROM TB_FWORKERSCH b,TB_FWORKERCN a 
WHERE a.ISSDATE>='20150401' AND a.UKEY=b.UKEY2 and b.STAMP=0 AND b.IG_SUMINS!=0

DB2 数据库

试试这个:

MERGE INTO TB_FWORKERSCH b 
USING TB_FWORKERCN a
   ON a.UKEY=b.UKEY2
   AND a.ISSDATE>='20150401' AND b.STAMP=0 AND b.IG_SUMINS<>0
WHEN MATCHED
   THEN UPDATE SET b.STAMP = b.STAMP + 10;

DB2 不允许对 UPDATE 子句使用 JOIN 或 FROM(这在 SQL 标准中也没有指定)。

你可以通过关联子查询实现你想要的:

UPDATE tb_fworkersch b
  SET stamp = stamp + 10 
WHERE EXISTS (SELECT 1 
              FROM tb_fworkercn a 
              WHERE a.issdate >= '20150401' 
                AND a.ukey = b.ukey2) 
AND b.stamp = 0
AND b.ig_sumins <> 0