2017-06-10 5 views
-1

同じフィールド(ITEM、指定)を含む2つのSQLテーブル(ITEM_A、ITEM_B)があります。注文なしのSQL Serverフル参加

ITEMA_A

ここ
001 LaptopA1 
001 LaptopA2 
001 LaptopA3 
002 DesktopA1 
002 DesktopA2 
003 MouseA1 
003 MouseA2 

ITEM_B

001 LaptopB1 
001 LaptopB2 
002 DesktopB1 
002 DesktopB2 
002 DesktopB3 
002 DesktopB4 
003 MouseB1 
003 MouseB2 
003 MouseB3 

は私が作ったクエリは次のとおりです。

001 LaptopA1  001 LaptopB1 
001 LaptopA2  001 LaptopB2 
001 LaptopA3  NULL NULL 
002 DesktopA1  002 DesktopB1 
002 DesktopA2  002 DesktopB2 
003 MouseA1  003 MouseB1 
003 MouseA2  003 MouseB2 
NULL NULL  002 DesktopB3 
NULL NULL  002 DesktopB4 
NULL NULL  003 MouseB3 
01:ここで

SELECT ITEM,Designation1, ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY Designation1) 'row' 
INTO #ITM_A 
FROM ITM_A 




SELECT ITEM,Designation2, ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY Designation2) 'row' 
INTO #ITM_B 
FROM ITM_B; 


SELECT A.ITEM,A.Designation1,B.ITEM,B.Designation2 
FROM #ITM_A A 
FULL OUTER JOIN #ITM_B B ON A.ITEM = B.ITEM AND A.row = B.row 

は私が得る結果であり、

私はそのように表示する必要があります。

001 LaptopA1 001 LaptopB1 
001 LaptopA2 001 LaptopB2 
001 LaptopA3 NULL NULL 
002 DesktopA1 002 DesktopB1 
002 DesktopA2 002 DesktopB2 
NULL NULL 002 DesktopB3 
NULL NULL 002 DesktopB4 
003 MouseA1  003 MouseB1 
003 MouseA2  003 MouseB2 
NULL NULL  003 MouseB3 
+0

「注文しないで」詳細を教えてください – TheGameiswar

答えて

2

あなただけで順番を追加する必要があります。必要な出力を達成するために

SELECT A.ITEM,A.Designation1,B.ITEM,B.Designation2 
FROM #ITM_A A 
FULL OUTER JOIN #ITM_B B ON A.ITEM = B.ITEM AND A.row = B.row 
order by isnull(A.ITEM,B.ITEM) 
0

、あなただけ追加する必要があります。
ORDER BY ISNULL(A.ITEM,B.ITEM)であなたの質問の終わり。

関連する問題