sql合并更新

zour9fqk  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(295)

我的合并查询

MERGE Povertytgt t 
    USING Povertyrsc s
        ON (s.Incomegroup = t.Incomegroup )
 WHEN MATCHED
    THEN UPDATE SET 
        t.CountbyGroup = s.CountbyGroup;

然后出错了
merge语句多次尝试更新或删除同一行。当目标行与多个源行匹配时,会发生这种情况。merge语句不能多次更新/删除目标表的同一行。优化on子句以确保目标行最多与一个源行匹配,或者使用groupby子句对源行进行分组。
这是资源表

CountbyGroup    IncomeGroup ID
78              Limit 2 - $4,012    
17              Limit 2 - $4,012

这是目标表

CountbyGroup    IncomeGroup       
0               Limit 2 - $4,012     
0               Limit 3 - $4,956     
0               Limit 4 - $5,899

我期待这个结果

CountbyGroup    IncomeGroup 
78              Limit 2 - $4,012    
17              Limit 3 - $4,956    
0               Limit 4 - $5,899
acruukt9

acruukt91#

为什么不用呢 update ?

UPDATE t
    SET t.CountbyGroup = s.CountbyGroup;
    FROM Povertytgt t JOIN
         Povertyrsc s
         ON s.Incomegroup = t.Incomegroup;

你没有指定错误,所以我不知道这是否能解决它。但这是一种更简单的方法。
然后出错了

相关问题