2017-11-22 3 views
-1

私は以下に述べるように、いくつかの計算を伴うソーステーブルとターゲットテーブルを持っており、ソーステーブルの計算結果セットをデスティネーションテーブルに移したいと思います。私は以下のシナリオを達成する方法を教えてもらえませんか

宛先テーブルの列はNOT NULLという制約が有効です。

誰でも以下の要件を達成するために私を導くことができます。

ソーステーブル:

Source_table1 >>

col1, 
col2, 
col3 

Source_table2 >>

col1, 
col2, 
col3 

ターゲットテーブル:

Dest_table:事前に

col1 >> Source_table1.col1+Source_table2.col1 

col2 >> Source_table1.col2+Source_table2.col2 

col3 >> Dest_table.col1+Dest_table.col2 

col4 >> Source_table1.col3+Source_table1.col3+Dest_table.col3 

感謝。

+0

クエリを作成しようとしましたか?そして、plsqlの必要はありません。ジョインとサブクエリで単純な 'insert into target select * from source'を使ってみてください。あなたが困難に直面した場合、あなたは確かにここに助けを得るでしょう。重要なのは、試してみると、クエリを投稿して投稿することです。 –

+0

提案kaushikをありがとう、私はPL/SQLで試して、私は目的地テーブルのcol1、col2、col3を達成しました。まだ私はDest_tableのCOL4で計算を達成するためのアイディアを得ていませんでした。あなたの提案に気にしないなら、私があなたのやり方でそれをするなら、私はcol1とcol2を得るでしょう、私はcol3、Dest4のcol4を得ません。そのように私は無効な識別子を取得します。そして、私はソースと目的地のテーブルの間に適切な関係がありません。あなたの提案にどこでも間違っていれば、私はPlsを修正します。ありがとう – Puru

+0

'source_table1'と' source_table2'はどのようにリンクされていますか? 'source_table1'のレコードごとに' source_table2'に同じ行または複数の行がありますか?その逆です。?各ソーステーブルのデータのいくつかのサンプルレコードを表示します。 –

答えて

0

あなたが必要とするのは、以下に示すような三層の合計です。単純なInsert into selectは、PL/SQLブロックを実行するよりも機能するはずです。また、コメントの1つとして、source_tab1.seq_no = source_tab2.seq_noがソーステーブル間の結合条件になります。

INSERT INTO Dest_table (col1, 
         col2, 
         col3, 
         col4) 
    SELECT dcol1, 
      dcol2, 
      dcol3, 
      s1col3 + s2col3 + dcol3 dcol4 
    FROM (SELECT dcol1, 
        dcol2, 
        dcol1 + dcol2 dcol3, 
        s1col3, 
        s2col3 
      FROM (SELECT s1col1 + s2col1 dcol1, 
          s1col2 + s2col2 dcol2, 
          s1col3, 
          s2col3 
        FROM (SELECT s1.col1 s1col1, 
            s1.col2 s1col2, 
            s1.col3 s1col3, 
            s2.col1 s2col1, 
            s2.col2 s2col2, 
            s2.col3 s2col3 
          FROM source_table1 s1 
            JOIN source_table2 s2 
            ON s1.seq_no = s2.seq_no))); 
+0

あなたの答えKaushikをありがとう。私がPL/SQLに行く理由は、ここで私はソーステーブル、デスティネーションテーブル、カラム、そしてその計算を知っています。しかし、私の要件は、私はソースから宛先に同じものを移入する必要がありますが、私はソース/デスティネーションテーブルが何であるかわかりません。実行時に取得する必要があるすべての値。私はcol4を除いてdest_tableですべての計算をしました、ここで私はどのように対処する打撃を受けた。今私はいくつかのアイデアを持っている、私はそれを動的にするだろうと私は疑いがある場合は戻ってくる。あなたの時間に感謝Kaushik。 – Puru

関連する問題