У меня три таблицы, и у них одно общее поле. Я хочу выбрать все строки каждой таблицы, упорядоченные по этому общему полю, и результат должен быть таким, как 1-я строка из 1-й таблицы, 2-я строка из 2-й таблицы и 3-я строка из 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 
1
Preetham Shyam 25 Ноя 2016 в 22:26

2 ответа

Лучший ответ

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

0
Juan Carlos Oropeza 25 Ноя 2016 в 21:02
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
1
McSenstrum 25 Ноя 2016 в 20:11