【发布时间】:2014-07-25 21:29:40
【问题描述】:
我已经让这个 Select SQL 工作了
SELECT O.* , S.NEW_EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT025_OPP_WRK O INNER JOIN
(
SELECT A.EOC_CNTRT_SQ AS OLD_EOC_CNTRT_SQ, (SELECT B.EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT020_CNTRT B
WHERE B.ALIAS_CNTRT_ID = A.ALIAS_CNTRT_ID
AND CREA_USER_SQ IN (5,3) ) AS NEW_EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT020_CNTRT A
WHERE A.ALIAS_CNTRT_ID IN ('12826')
AND CREA_USER_SQ NOT IN (5,3)
) S ON O.EOC_CNTRT_SQ = S.OLD_EOC_CNTRT_SQ
但是当我尝试将其转换为更新语句时出现错误 -
UPDATE O
SET O.EOC_CNTRT_SQ = S.NEW_EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT025_OPP_WRK O INNER JOIN
(
SELECT A.EOC_CNTRT_SQ AS OLD_EOC_CNTRT_SQ, (SELECT B.EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT020_CNTRT B
WHERE B.ALIAS_CNTRT_ID = A.ALIAS_CNTRT_ID
AND CREA_USER_SQ IN (5,3) ) AS NEW_EOC_CNTRT_SQ
FROM FAMSUNIT.EOCT020_CNTRT A
WHERE A.ALIAS_CNTRT_ID IN ('12826')
AND CREA_USER_SQ NOT IN (5,3)
) S ON O.EOC_CNTRT_SQ = S.OLD_EOC_CNTRT_SQ;
错误 [42601] [IBM][DB2] SQL0199N 在“”之后使用保留字“FROM”无效。预期的标记可能包括:“(.MICROSECOND SECOND SECOND MINUTES MINUTE”。SQLSTATE=42601
【问题讨论】:
-
您需要复习一下 UPDATE 语句的语法。
UPDATE <TABLE_NAME> SET <COLUMN_NAME> = _________ WHERE ..... -
我知道标准的更新语句,但我正在尝试根据我已形成 SQL 语句的内部子查询的联接更新多条记录。但不确定如何将其转换为 Update 语句。无论我得到什么,都是从堆栈溢出中查看其他示例