2016-11-25 18 views
1

私は3つのテーブルを持ち、共通のフィールドを1つ持っています。その共通フィールドで順序付けられた各テーブルのすべての行を選択し、結果は1行目が第1テーブル、2行目が2テーブル目、3行目が3テーブル目です。3つのテーブルを1つの主キーでマージし、各テーブルの結果を1つずつ表示する必要があります。

上記の作業にはどのようなクエリが使用できますか?以下のように、3つのテーブルのサンプルデータと必要な出力を与えました。私の質問が不器用な場合は親切に私を許して!

TABLE1  
WO  STATUS  SITE 
1001 Released 36 
1002 Closed  31 
1003 Released 42 

TABLE2   
WO LINE NO PRICE  QTY 
1001 1  100  2 
1001 2  300  3 
1002 1  1500  3 
1003 1  100  4 
1003 2  200  2 
1003 3  100  1 

TABLE3  
WO  USER SIGN ID 
1001 Chrish CRS 
1001 Jovan JVN 
1002 Roopesh ROO 
1003 Brian BRN 
1003 Suren SRN 
1003 Pavith PAV 

出力は

RESULT    
TABLE1 1001 Released 36 
TABLE2 1001 1 100  2 
TABLE2 1001 2 300  3 
TABLE3 1001 Chrish  CRS 
TABLE3 1001 Jovan  JVN 
TABLE1 1002 Closed  31 
TABLE2 1002 1 1500 3 
TABLE3 1002 Roopesh  ROO 
TABLE1 1003 Released 42 
TABLE2 1003 1 100  4 
TABLE2 1003 2 200  2 
TABLE2 1003 3 100  1 
TABLE3 1003 Brian  BRN 
TABLE3 1003 Suren  SRN 
TABLE3 1003 Pavith  PAV 
+0

mysql oracle? 1つを選択します。私たちにあなたのdbスキーマ、サンプルデータ、期待される出力を教えてください。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

+0

こんにちは、ありがとう。編集済みです! –

+0

よりはるかに優れていますが、列よりもデータが多いように結果のフォーマットが変わっています。 –

答えて

0

SQL DEMO

SELECT 'T1' as source, "WO", "STATUS" as f2, CAST("SITE" AS text) as f3, null as f4 
FROM Table1 
UNION 
SELECT 'T2' as source, "WO", CAST("LINE NO" AS text) as f2, CAST("PRICE" AS text) as f3, "QTY" as f4 
FROM Table2 
UNION 
SELECT 'T3' as source, "WO", "USER" as f2, "SIGN ID" as f3, null as f4 
FROM Table3 
ORDER BY "WO", source 

OUTPUT

のようでなければなりません

enter image description here

1
select commonfield, fld1, fld2 from (
    select commonfield, uniquefield1 as fld1, uniquefield2 as fld2, 1 as sort from table1 
    union 
    select commonfield, uniquefield1, uniquefield2, 2 as sort from table2 
    union 
    select commonfield, uniquefield1, uniquefield2, 3 as sort from table3 
) as qry 
order by qry.commonfield, qry.sort 
+0

ありがとうございました!!しかし、表2と表3には他の列が表示されています!私はそれらの列も必要です。 –

+0

一意のフィールドを追加するように編集しました。 uniquefield1は、3つのテーブルすべてとは異なるフィールド名にすることができますが、各テーブルの値は、同じ列に表示され、fld1/fld2という名前がユニオンの最初のqryに定義されています。 – McSenstrum

+0

バディー!!私は私の質問を編集し、あなたの親切な参照のためのいくつかのサンプルデータを追加しました! –

関連する問題