我有一張這樣的桌子
| 團體 | 編號 | UL | 模型 |
|---|---|---|---|
| 10 | 1 | 40 | 10 |
| 10 | 1 | 35 | 12 |
| 10 | 1 | 30 | 13 |
| 10 | 2 | 無效的 | 10 |
| 10 | 2 | 無效的 | 12 |
| 10 | 2 | 無效的 | 13 |
我想更新 UL 的值,其中 ITEM_NO 為 2,從 UL 的專案編號 =1 減去 5,其中型號相同。
所以我的輸出表應該是這樣的
| 團體 | 編號 | UL | 模型 |
|---|---|---|---|
| 10 | 1 | 40 | 10 |
| 10 | 1 | 35 | 12 |
| 10 | 1 | 30 | 13 |
| 10 | 2 | 35 | 10 |
| 10 | 2 | 30 | 12 |
| 10 | 2 | 25 | 13 |
我的查詢如下所示:
Update table t1
set t1.Ul = ( select t2.ul-5
from table t2
where t2.item_no =1)
where t1.model in ( select model
from table t2
where t2.item_no = 1) , t1. Item_no =2
此查詢回傳錯誤,因為“單行子查詢回傳多行”。我也嘗試使用內部連接,但無法做到。任何人都可以幫助如何做到這一點。
uj5u.com熱心網友回復:
我認為您正在尋找以下內容:
merge into t1 x
using (select * from t1 where ITEM_NO = 1) y
on (x.M0DEL = y.M0DEL and x.ITEM_NO=2)
WHEN matched THEN
UPDATE SET x.UL=Y.UL -5;
https://livesql.oracle.com/apex/f?p=590:43:20294207843979::NO:: :
uj5u.com熱心網友回復:
update t1 tt1
set tt1.ul=(select tt2.ul from t1 tt2 where tt1.model1= tt2.model1 and
tt2.item_no=2)
where tt1.item_no=1;
uj5u.com熱心網友回復:
嘗試這個 :
MERGE INTO table t1
USING table t2
ON (t1.model = t2.model AND t2.Item_No = 1)
WHEN MATCHED THEN
UPDATE SET t1.UL = t2.UL - 5, t1.Item_No = 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/483086.html
標籤:甲骨文
上一篇:Oracle案例WHERE子句
下一篇:獲取具有相同值的id
