如何从oracle中的其他两个表中插入数据
我正在创建一个新表。表中的值/数据来自另一个表。例如:在table A
我有场Code
用2个数据,EXE
和IMP
。在table B
我有一个数据2016
和2017
场Year
。现在我需要制作table C
,其中字段Status
其中Status
字段中的数据为EXE-2016
,IMP-2016
,EXE-2017
和IMP-2017
。这种问题的查询过程如何?如何从oracle中的其他两个表中插入数据
table A code | code_name | flag
EXE | Execute | Y
IMP | Implement| Y
table B
Year | phase | flag
2016 | P1 | Y
2016 | P2 | Y
2017 | P1 | Y
2017 | P2 | Y
2018 | P1 | N
table C
Status | Flag
EXE-2016 | Y
IMP-2016 | Y
EXE-2017 | Y
IMP-2017 | Y
EXE-2018 | N
IMP-2018 | N
回答:
你想要从两个表中交叉加入记录:
- 表A每年的记录来自表A
- 每年来自表B的MAX标记(即, 'Y'胜过'N')
然后使用CREATE TABLE c AS <query>
为了从查询结果创建表格C.
create table c as select a.code || '-' || bb.year as status, bb.flag
from a
cross join
(
select year, max(flag) as flag
from b
group by year
) bb;
(也许巴尔巴罗斯Özhan是正确的,你真的想创建一个视图,而不是然后使用create view c as <query>
。)
回答:
create table C as select A.code || '-' || B.year as status
from A, B
回答:
在你的情况下,最好以这样的方式来创建一个view
记录sql
供以后就像一个表的使用情况:
create view tableC as select code||' - '||year status, flag
from (
select a.code, b.year, b.flag from tableA a cross join tableB b
)
group by code, year, flag
order by year, code;/
select * from tableC;/
D e m o
回答:
CREATE table C as SELECT A.Code || '-' || B.Year AS
STATUS , B.flag
FROM A,B
以上是 如何从oracle中的其他两个表中插入数据 的全部内容, 来源链接: utcz.com/qa/261582.html