Database 使用更新IBM DB2时的标量fullselect问题

Database 使用更新IBM DB2时的标量fullselect问题,database,db2,Database,Db2,首先,请原谅,因为我的sql/db2知识非常低 我在IBM Datastudio 2.2.0.1版工作,我的DB2版本是10010000:我猜它是1.1版,是的,它有点过时,但什么都做不了,这是一个老项目 回到我的问题,我需要使用update将查询中的所有匹配项放入另一个表中,我正在尝试下一个查询: UPDATE IKUA01701 SET DOCS_OFIC_TERCEROS = ( SELECT IKUA06901.ENVI_NUM FROM IKUA06901, IKUA0

首先,请原谅,因为我的sql/db2知识非常低

我在IBM Datastudio 2.2.0.1版工作,我的DB2版本是10010000:我猜它是1.1版,是的,它有点过时,但什么都做不了,这是一个老项目

回到我的问题,我需要使用update将查询中的所有匹配项放入另一个表中,我正在尝试下一个查询:

UPDATE IKUA01701
SET DOCS_OFIC_TERCEROS = (
    SELECT IKUA06901.ENVI_NUM
    FROM IKUA06901, IKUA01701
    WHERE IKUA06901.ENVI_OFIC_TERCEROS = IKUA01701.DOCS_NUM);
它返回下一个错误:

标量fullselect、SELECT INTO语句或VALUES INTO语句的结果不止一行。。SQLCODE=-811,SQLSTATE=21000,DRIVER=4.8.86

如果我在没有更新的情况下执行子查询:

SELECT IKUA06901.ENVI_NUM
FROM IKUA06901, IKUA01701
WHERE IKUA06901.ENVI_OFIC_TERCEROS = IKUA01701.DOCS_NUM;
我得到19个结果,类型:Long

ENVI_NUM
 --------
 2042
 2041
 2220
 2641
 2300
... etc

我做错了什么?。我从昨天早上开始一直在尝试,但什么也找不到。

要更新一条记录还是多条记录?每一行只能有一个更新我需要更新多个记录,因此有一种方法可以做到这一点?如何确定要更新的记录?需要有一个WHERE子句来筛选它们。