已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
4天前关闭。
Improve this question
我正在尝试将一个工作中的选择查询转换为一个更新查询。我需要根据3个表中的条件将PARTS_MASTER中的LIST_PRICE增加10%。
以下是查询:
select pnm.pn, pnm.description, pnm.list_price, mfg.mfg_code, pnm.list_price_date, whs.warehouse_code, stk.qty_available, stk.stock_line
from parts_master pnm join manufacturer mfg on pnm.mfg_auto_key = mfg.mfg_auto_key
join warehouse whs on pnm.whs_auto_key = whs.whs_auto_key
join stock stk on pnm.pnm_auto_key = stk.pnm_auto_key
where REGEXP_LIKE(mfg.mfg_code, '^[[:digit:]]+$')AND
pnm.list_price_date BETWEEN TO_DATE('2017-01-02', 'YYYY-MM-DD') AND
TO_DATE('2023-05-10', 'YYYY-MM-DD') AND
pnm.list_price_date IS NOT NULL AND
whs.warehouse_code = 'MI SKYLINE' AND
stk.qty_available > 0
order by mfg.mfg_code
2条答案
按热度按时间hfsqlsce1#
给予这个:
我使用一个子查询从manufacturer和stock表中筛选数据,并通过将当前list_price乘以1.1来更新parts_master的list_price。
n3ipq98p2#
我知道,根据查询结果,您希望更新
parts_master
中的相应行。我假设现有的查询并不“乘”原始表中的行,而是使用连接作为过滤器。如果是这样,那么在Oracle中,一种方法是将连接逻辑转换为
exists
子查询。对于您显示的查询,这可能如下所示:更新表上的条件转到
where
子句,而连接表上的条件与目标表上的连接条件沿着被移动到exists
子查询。