您好我想更新一个列,其他表的列做出一些决定 这是我的代码
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。这是不允许的 子查询跟随=,!=,<,< =,>,> =或当子查询用作 一个表达
答案 0 :(得分:0)
跑步时的输出是什么;
SELECT Code, [First Unit], [Max Level]
FROM Vitem
WHERE [Max Level] = 3
HAVING COUNT(*) > 1
如果您有多行,那么这意味着您将为UPDATE条件返回多个匹配项,这就是您的子查询正在爆炸的原因。您需要从源表中查找唯一的行组合。