我需要将表A和表B连接起来创建表C。
表A和表B存储ID的状态标志。状态标志(A_Flag和B_Flag)可能会随时间而改变,因此一个ID可以包含多行,表示该ID状态的历史记录。一个特定ID的标志可以相互独立地改变,这可能导致表A中的一行属于表B中的多行,反之亦然。
生成的表(表C)需要是覆盖IDs生命周期内每个日期的唯一日期范围列表,并且每个日期范围都有A_Flag和B_Flag值。
实际表包含数百个ID,每个ID在每个表中具有不同数量的行。
我可以使用SQL和SAS工具来实现最终结果。
表A和表B存储ID的状态标志。状态标志(A_Flag和B_Flag)可能会随时间而改变,因此一个ID可以包含多行,表示该ID状态的历史记录。一个特定ID的标志可以相互独立地改变,这可能导致表A中的一行属于表B中的多行,反之亦然。
生成的表(表C)需要是覆盖IDs生命周期内每个日期的唯一日期范围列表,并且每个日期范围都有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