テーブル C を作成するには、テーブル A とテーブル B を結合する必要があります。
テーブル A とテーブル B には、ID のステータス フラグが格納されます。ステータス フラグ (A_Flag および B_Flag) は随時変更される可能性があるため、1 つの ID に複数の行を含めることができます。これは、ID のステータスの履歴を表します。特定の ID のフラグは、互いに独立して変更できます。その結果、テーブル A の 1 つの行がテーブル B の複数の行に属したり、その逆になる場合があります。
結果のテーブル (テーブル C) は、ID の有効期間 (2008 年 1 月 1 日から 2008 年 18 月 18 日) 内のすべての日付をカバーする一意の日付範囲のリストと、各日付範囲の A_Flag および B_Flag 値である必要があります。
実際のテーブルには数百の ID が含まれており、各 ID はテーブルごとにさまざまな数の行を持っています。
最終結果を達成するために、SQL および SAS ツールにアクセスできます。
Source - Table A
ID Start End A_Flag
1 01/01/2008 23/03/2008 1
1 23/03/2008 15/06/2008 0
1 15/06/2008 18/08/2008 1
Source - Table B
ID Start End B_Flag
1 19/01/2008 17/02/2008 1
1 17/02/2008 15/06/2008 0
1 15/06/2008 18/08/2008 1
Result - Table C
ID Start End A_Flag B_Flag
1 01/01/2008 19/01/2008 1 0
1 19/01/2008 17/02/2008 1 1
1 17/02/2008 23/03/2008 1 0
1 23/03/2008 15/06/2008 0 0
1 15/06/2008 18/08/2008 1 1