【发布时间】:2018-05-05 03:52:25
【问题描述】:
我正在尝试使用相关订单的创建日期更新一个连续出版物表。订单最终可能有重复的数字,因此需要此连接。桌子上的钥匙是序列号。
我正在使用以下 SQL 更新新字段 MYCRTDAT。它似乎可以正常工作,但只能使用 FETCH FIRST 1 ROW ONLY 语句。
我通过快速查看这些行来验证更新的日期是否正确。
当 NOT 使用该语句时,它会返回一个错误,即 基本谓词的子选择已生成多行
我认为这个错误是有道理的,但我不明白 VC2.SERIALNUM 是如何“通过”的 --- 它是作为奇异值还是同时作为所有行?如果它是一次所有的行,FETCH FIRST 如何不只是每次都返回第一行?
UPDATE SCHEMA.TABLE VC2
SET MYCRTDAT = (
-- Get Date from Associated Table
SELECT
MO1.CRDT
FROM
SCHEMA.TABLE VC1
LEFT JOIN SCHEMA.M1 MO1 ON
VC1.ORDER = MO1.ORDER
AND VC1.ITEM = MO1.ITEM
WHERE VC2.SERIALNUM = VC1.SERIALNUM
FETCH FIRST 1 ROW ONLY
);
IBM DB2 for i - 7.1(电源系列)
【问题讨论】:
标签: db2 ibm-midrange db2-400