2012-03-08 55 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 

是真實的。您需要了解何時可能,並在必要時重新考慮您的策略。