如何使用另一个表中的数据更新多个匹配记录

时间:2014-06-10 16:04:57

标签: sql merge group-by db2

使用DB2但猜测这通常适用于SQL。

我有两张桌子; Table1包含Fix列在多行中可以相同的数据。如果找到Table1中的Fix列和Table2中的Title列之间的一个或多个匹配项,则Table2具有唯一的行并且具有我想要添加到第一个表中的列的数据。

我遇到一个问题,即SQL返回错误说:“对于MERGE语句的更新,删除或插入操作,多次识别目标表”xxxxxxx“的同一行。”< / p>

现在这是预期的,即我知道目标表中有多个符合条件的行,需要将源表中的数据应用于它们。

我正在使用MERGE,但这是不可能的?一直在看GROUP BY,但无法让它工作。

如果我用另一种语言执行此操作,我将浏览源表,从源代码构建匹配记录的集合,然后使用需要添加的源数据迭代更新集合。认为SQL中有一种更有效的方法吗?

此代码完全错误(并返回上面的错误),但在此处添加它以帮助任何想要伸出援手的好人: - )

CREATE PROCEDURE Update_RawData_With_xKey_Data ()
P1: BEGIN

MERGE INTO table1 AS T
USING table2 AS S
ON (T.FIX = S.TITLE) 

WHEN MATCHED THEN
    UPDATE SET 
    T.Rating = S.Rating, 
    T.GSDS = S.GSDS_Date, 
ELSE IGNORE ;


END P1 

0 个答案:

没有答案