私は2つのテーブルを持っています:
古いテーブル (OT)
Record_id | Name | Sequence_num
------------------------------------
78 | Austin | 0
78 | Mike | 1
78 | Joe | 2
と
New_table (NT)
Record_id | Name | Sequence_num
------------------------------------
78 | Mike | 0
78 | Joe | 1
78 | Austin | 2
78 | Fred | 3
78 | Ben | 4
私が探しているのは、次のような出力テーブルです。
Record_id | OT_Name | NT_Name | Sequence_num
---------------------------------------------------
78 | Austin | Mike | 0
78 | Mike | Joe | 1
78 | Joe | Austin | 2
78 | NULL | Fred | 3
78 | NULL | Ben | 4
問題は、各テーブルにいくつの行があるのか はっきりわからないことです。OT が 10 行で NT が 3 行、または NT が OT よりも多い行、またはそれらが同じ数である可能性があります。反対側のテーブルに一致する Sequence_num がない行は、適切な列に NULL 値を持つ必要があります。この状況ですべてのテーブルに関数を作成する以外に、select ステートメントでこれを達成するにはどうすればよいでしょうか? 私は一生解決策を思いつくことができません。
編集:
MS Sql Sever 2008 の使用
管理スタジオ 10.0.1600.22