plsql-merge into two tables with different columns
I have two queries, the one returns output:
id | faults | avg_duration
--------------------------
x | 55 | 45.3
y | 102 | 11.2
z | 333 | 25.3
the other:
id | connection | duration
-----------------------
x | 12 | 10
y | 55 | 25
z | 77 | 36
The above queries use a where clause in order to define the time stamp (start,end) i.e. where Start_date between to_date ('01/01/2011 10:10:00', 'dd/mm/yyyy 24hr:mm:ss') and to_date ('01/02/2011 10:10:00', 'dd/mm/yyyy 24hr:mm:ss') = 1 month duration
I want to insert the two results in a new table like this, assuming that the table already exists:
start_date | id | faults |avg_duration| connection | duration
-------------------------------------------------------------------------
01/01/2011 10:10:00 | x | 55 | 45.3 | 12 | 10
01/01/2011 10:10:00 | y | 102 | 11.2 | 55 | 25
01/01/2011 10:10:00 | z | 333 | 25.3 | 77 | 36
Each time the duration of the queries changes, the above table will be updated with the new data:
start_date | id | faults |avg_duration| connection | duration
-------------------------------------------------------------------------
01/01/2011 10:10:00 | x | 55 | 45.3 | 12 | 10
01/01/2011 10:10:00 | y | 102 | 11.2 | 55 | 25
01/01/2011 10:10:00 | z | 333 | 25.3 | 77 | 36
01/05/2011 10:10:00 | x | 开发者_如何学编程10 | 4500 | 41 | 100
01/05/2011 10:10:00 | y | 100 | 5000 | 41 | 250
01/05/2011 10:10:00 | z | 300 | 2000 | 71 | 360
I would do something like this:
INSERT
INTO new_table
SELECT q1.start_date, q1.id, q1.faults, q1.avg_duration, q2
FROM (query 1) q1,
(query 2) q2
WHERE q1.id = q2.id -- (or do a join above)
AND -- if you want to exclude duplication
NOT EXISTS (SELECT 1
FROM new_table a
WHERE a.start_date = q1.start_date
AND a.id = q1.id ... etc ...
)
I think that would work. This is coming from a slightly hazy brain at the moment, but the point it makes should be valid -- just combine your two queries together and treat them as two tables being joined, and then insert the results from that into your new table (avoiding duplicates if required).
精彩评论