【发布时间】:2019-05-28 11:18:29
【问题描述】:
我正在尝试在 Oracle 中编写一个将返回多行的查询,但是使用此查询我得到“单行子查询返回多于一行”,我尝试使用 IN 操作代替“=”操作员,但我做不到,这是我的查询
Update Quote_line_part_quantity
SET
resale_am =(
select target_resale
FROM Quote_line_part_quantity
where quote_id=100218906
)
WHERE
quote_id=100218906
AND quote_line_no IN(
SELECT
quote_line_no
FROM
Quote_Line
WHERE
quote_id IN 100218906
AND quote_line_no=(1)
AND Quote_line_status_cd IN('R','A')
);
我很困惑为什么会一次又一次地给出这个错误。请帮助
【问题讨论】:
-
您需要将要更新的子查询与要更新的行关联起来。一个字段只能更新一个值,不能更新多个值。然而,这意味着你不能只做
update ... set resale_am = target_resale where ...?