私は2つのテーブルを持っています。それらをテーブルAとBと呼びましょう:-
表 A は次のようになります。
A.Num1 | A.Num2 | A.Date
12345 | 38170 | 28/05/2013
12345 | 38170 | 29/05/2013
12345 | 38170 | 31/05/2013
12345 | 38170 | 01/06/2013
12345 | 38170 | 03/06/2013
12345 | 38170 | 04/06/2013
12345 | 38170 | 04/06/2013
12345 | 38170 | 07/06/2013
表 2 (B) は次のようになります。
B.Num1 | B.Num2 | B.Status | B.Date
12345 | 38170 | New | 28/05/2013
12345 | 38170 | Closed | 31/05/2013
12345 | 38170 | Reopened | 04/06/2013
出力としてこのようなテーブルが必要です - 基本的に、テーブル A のすべての行 + テーブル B のステータスが含まれている必要があります
Num1 | Num2 | Status | Date
12345 | 38170 | New | 28/05/2013
12345 | 38170 | New | 29/05/2013
12345 | 38170 | Closed | 31/05/2013
12345 | 38170 | Closed | 01/06/2013
12345 | 38170 | Closed | 03/06/2013
12345 | 38170 | Reopened | 04/06/2013
12345 | 38170 | Reopened | 04/06/2013
12345 | 38170 | Reopened | 07/06/2013
また、プロシージャーではなく、単純な SQL ステートメントを使用することをお勧めします。
前もって感謝します。明確化のために親切にコメントしてください
インドル
アップデート
テーブル B の 2 つの行のステータスが変更されたが、同じ日付の場合、結合で一貫性のない値が得られます。
例を見てみましょう:
A と B という 2 つのテーブルがあります。これらはかなり大きなテーブルで、特定の情報が文書化されています。テーブル A は、数日ごとにデータをスキャンして文書化しますが、ステータス列がありません。変更がある場合、テーブル B はステータス列を含む新しいエントリを取得します。これら 2 つを照合し、B に対応するテーブル A の各エントリのステータスを取得する必要があります。
表 B
Id | Num1 | Num2 | CreatedOn | Status
100 | 12345 | 38170 | 28/05/2013 | New
150 | 12345 | 38170 | 28/05/2013 | Closed
200 | 12345 | 38170 | 31/05/2013 | Reopened
250 | 12345 | 38170 | 04/06/2013 | Closed
表 A
Id | Num1 | Num2 | CreatedOn
55 | 12345 | 38170 | 28/05/2013
99 | 12345 | 38170 | 30/05/2013
145 | 12345 | 38170 | 31/05/2013
192 | 12345 | 38170 | 31/05/2013
223 | 12345 | 38170 | 04/06/2013
望ましい出力
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | New
99 | 11552 | 38170 | 30/05/2013 | Closed
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
代わりに、次のようになります: (Jeffrey Kamp の返信を使用)
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | Closed
99 | 11552 | 38170 | 30/05/2013 | Closed
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
そしてこれ:(返信2を使用 - マーク・バニスター)
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | New
99 | 11552 | 38170 | 30/05/2013 | New
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
テーブル B には同じ日 (28/05/13) に 2 つのエントリがあるため、明らかにレコード Id-55 は新規またはクローズのいずれかになります。これを行う方法は?