2012-03-08 54 views
0

我想更新表格值与两列值的比较。用2列值更新表格

查询

UPDATE acc SET slloc = 
    (SELECT Location 
    FROM Duplication$ 
    WHERE Duplication$.GROUP1 = acc.grpcd 
     AND acc.ccode = Duplication$.div) 

表示错误上述查询作为

子查询返回大于1倍的值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。 该声明已被终止。

我怎样才能改变我的查询

回答

1

只需重写您的更新,使用JOIN和你喜欢,你可以更新尽可能多的行...

UPDATE a SET slloc = d.Location 
FROM acc a 
JOIN Duplication$ d ON d.GROUP1 = a.grpcd 
       AND d.div = a.ccode 
0

此错误消息意味着有不止一个Location其中:

Duplication$.GROUP1 = acc.grpcd AND acc.ccode = Duplication$.div 

是真实的。您需要了解何时可能,并在必要时重新考虑您的策略。