【问题标题】:Using subquery with update SQL使用带有更新 SQL 的子查询
【发布时间】:2021-05-12 16:25:44
【问题描述】:

我有表 1:EMP 如下

       ID   NAME             CITY             AMT        
       -------------------------------------------
        1   sajani           Bangalore        0          
        2   Prashanth        Bangalore        0          
        3   Jayvin           Bangalore        0     

表 2:EMP1

 ID   NAME1            CITY1            AMT1    
 ---------------------------------------------
  1   Sajani           Bangalore        10      
  1   Sajani           Bangalore        10      
  2   Prashanth        Bangalore        10      
  3   Jayvin           Bangalore        10      

ID 是密钥,在两个文件中都是通用的。我想要一个 Update SQL 来使用表 2 的 Amount 字段更新表 1 的 amount 字段,结果如下。

结果:

       ID   NAME             CITY             AMT        
       --------------------------------------------
        1   sajani           Bangalore        20          
        2   Prashanth        Bangalore        10          
        3   Jayvin           Bangalore        10    

【问题讨论】:

    标签: sql db2 sql-update subquery ibm-midrange


    【解决方案1】:

    一种方法是相关子查询:

    update emp
        set amt = (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);
    

    您可以使用以下方法检查值是否匹配:

    update emp
        set amt = (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);
        where amt <> (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);
    

    【讨论】:

    • 如果我只想在不匹配的情况下更新记录怎么办
    • 如果什么不匹配?也许你应该问一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2015-04-13
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多