2009-07-22 19 views
0

2つの異なるテーブルの値を格納するテーブルを作成したいと思います。表1から2つの異なるテーブルのフィールドを持つテーブルを作成する

:CUST_ID(VARCHAR2)、表2からinvoice_amt(フロート)

:(表1から)CUST_ID、PAYMENT_DATE

マイテーブルは3つのフィールドを有していなければなりません

cust_id, invoice_amt, payment_date 

私は以下のことを試みましたが、明らかに間違っています。

create table temp1 as (
    select table_1.cust_id, table_1.invoice_amt, table_2.payment_date 
     from [email protected], [email protected]) 

あなたの貴重な提案は大きな助けになるでしょう。

+0

あなたのご意見ありがとうございます。私はテーブルの作成を行っていますが、私の問題は、私のテーブルは700万レコード以上で、dblinkでレコードにアクセスしようとしています。とにかく質問をスピードアップできますか?私は完全な初心者ですので、いくつかの詳細なヘルプは素晴らしいでしょう。 多くのおかげで:) – novice

答えて

4
create table temp1 as (
    select 
     table_1.cust_id, 
     table_1.invoice_amt, 
     table_2.payment_date 
    from 
     [email protected], 
     [email protected] 
    where 
     table_1.cust_id = table_2.cust_id 
    ) 

私はオラクルの男ではありませんが、それはあなたが望むもの(テストされていませんが)を行う必要があります。

1

あなたが接近していた:

create table temp1 as ( 
    select t1.cust_id, t1.invoice_amt, t2.payment_date 
     from [email protected] t1, [email protected] t2 
    where t1.cust_id=t2.cust_id) 
1

それはあなたがそれを使用しようとしているかに依存しますが、私は痛ん代わりに、テーブルのビューを使用するように誘惑されるだろう:

create view temp1(cust_id, invoice_amt, payment_date) as 
    select t1.cust_id, t1.invoice_amt, t2.payment_date 
     from [email protected] as t1 inner join [email protected] as t2 
      on t1.cust_id = t2.cust_id 

利点は、常に現在のバージョンのtable_1とtable_2の値が含まれていることです。欠点は、ビューを編集できないことです(可能であれば、編集内容がビューと同様に基礎となるテーブルにも影響します)。

+0

欠点は、そのビューへのすべてのクエリのDBリンクを介してデータをプルする必要があることです。 – jva

関連する問題