从另一个表的列更新一列

时间:2013-01-30 11:13:54

标签: sql sql-update

您好我想更新一个列,其他表的列做出一些决定 这是我的代码

update STOCKS 
    set SE_QTY_L2 = (   

      select SE_QTY_L2  

      from STOCKS  
      join 
      VITEM on VITEM.Code= STOCKS.SE_ITEM_CODE 
      and SE_UNIT = VITEM.[First Unit] and VITEM.[Max Level] = 3  


      )   from STOCKS    
      join 
      VITEM on VITEM.Code= STOCKS.SE_ITEM_CODE 
      and SE_UNIT = VITEM.[First Unit] and VITEM.[Max Level] = 3  

当我运行此查询时,抛出以下错误:

错误

  

子查询返回的值超过1。这是不允许的   子查询跟随=,!=,<,< =,>,> =或当子查询用作   一个表达

1 个答案:

答案 0 :(得分:0)

跑步时的输出是什么;

SELECT Code, [First Unit], [Max Level]
FROM Vitem
WHERE [Max Level] = 3
HAVING COUNT(*) > 1

如果您有多行,那么这意味着您将为UPDATE条件返回多个匹配项,这就是您的子查询正在爆炸的原因。您需要从源表中查找唯一的行组合。