![](/img/trans.png)
[英]update table column from view in another database in oracle sql developer
[英]Insert record in a table based on a column in another table (in Oracle SQL developer)
我想基于表Headers
(日期,ID1,ID2)中的记录在表Prices
(日期,ID1,价格)中插入新记录。 如果表Headers
中存在一条记录,其ID2等于该表中另一个记录的ID1,则必须在表价格中插入一条新记录,该记录的日期和ID1是从表标题中获取的,其价格等于该表中已经有ID1的记录。 例如:
输入:
Table Headers:
Date ID1 ID2
-------------------------------
2013.08.10 100 200
2013.08.10 300 100
2013.08.10 400 100
2013.08.11 200 500
2013.08.11 500 200
2013.08.11 600 200
Table Prices:
Date ID1 Price
---------------------------
2013.08.10 100 500
2013.08.11 200 1200
输出中必须包含在Prices
为ID = 100和ID1 = 400且Prices
为ID = 500的Prices
插入的新记录(因为ID1 = 300和ID1 = 400的记录的ID2 = 100对应于ID1 = 100的记录)。 同样,对于ID1 = 500和ID1 = 600的记录,必须基于ID2 = 200的价格在表Prices
插入新记录:
Date ID1 Price
--------------------------------
2013.08.10 100 500
2013.08.10 300 500
2013.08.10 400 500
2013.08.11 200 1200
2013.08.11 500 1200
2013.08.11 600 1200
没有足够的示例知道这是否完全正确,但是它仅适用于所提供的一种情况:
Insert Into Prices (
"Date",
id1,
Price
)
Select
h2."Date",
h2.id1,
p.Price
From
Headers h1
Inner Join
Headers h2
on h1.id1 = h2.id2
Inner Join
Prices p
on h2.id2 = p.id1;
以下查询可以解决问题:
insert into Prices ("Date",ID1,Price)
select h."Date",h.ID1,p.Price
from Headers h join Prices p on (p.ID1=h.ID2)
where h.ID1 not in (select ID1 from Prices)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.