2016-06-27 10 views
0

次の2つの表があります。 表A:Oracle SQLの共通列を持つ表の結合

Col1 Col2 Col3 
3 6 300 
2 3 400 
3 5 200 

これで表B:

Col1 Col2 Col4 
3 5 500 
3 7 900 
2 4 300 
2 3 100 

欲しい出力である:表C

Col1 Col2 Col3 Col4 
3 5 200 500 
3 7 0 900 
2 4 0 300 
2 3 400 100 
3 6 300 0 

COL3の値とCOL4は、値の関数でありますcol1とcol2。次の例に示すように、テーブルAとテーブルBに参加したいと思います。完全な外部結合を試みましたが、レコードが存在しない場合はゼロを返しません。また、両方のテーブルからすべての列を返します。どのように出力を表示するのですか?ありがとうございました。外側のフル参加

+0

これは冗談ですか? HTMLテーブルまたはSQLテーブルがありますか? –

+0

SQLテーブル。私はコミュニティに新しい人で、テーブルをより良い方法で表示する方法を知らない。 –

答えて

3

は良いアイデアである、別のテーブルで0

select NVL(t1.col1,t2.col1), NVL(t1.col2,t2.col2), NVL(col3,0), NVL(col4,0) 
from t1 
full outer join t2 
on t1.col1 = t2.col1 and t1.col2 = t2.col2 

でnull値をsobstituteするNVLを使用します。

select NVL(NVL(t1.col1,t2.col1),t3.col1), 
     NVL(NVL(t1.col2,t2.col2),t3.col2), 
     NVL(col3,0), NVL(col4,0), NVL(col5,0) 
from t1 
full outer join t2 
on t1.col1 = t2.col1 and t1.col2 = t2.col2 
full outer join t3 
on t1.col1 = t3.col1 and t1.col2 = t3.col2 
    and t2.col1 = t3.col1 and t2.col2 = t3.col2 

私はそれを試していませんでした申し訳ありませんが...私に教えて何か問題があれば。

+0

どのようにHTMLテーブルの束を使ってそのクエリを書いたのか分かりませんが、私はこれをupvotingしています。 –

+0

「実行スニペット」ボタンをクリックした可能性があります。@TimBiegeleisen – sagi

+0

ありがとうございます。同様の方法でcol​​1、col2、col5の3番目のテーブルに参加すると、このクエリはどのように変化しますか? –

関連する問題