我有两个桌子。我必须为表A(A是驱动程序表)的每一行填充表B中的R_val列。但是在填充R_val时,我必须考虑field_num,field的每种组合的开始日期,结束日期和标志。 例如,从下面的示例中,如果开始日期为01/01/2017,结束日期为NULL,表B中的标志为O(表示打开),则对于表A中的所有行,其开始日期大于B中的start_date和标志= O应该填充相同的R_val 例如,如果表B中有另一个条目,表A中的开始和结束日期与表B中的开始和结束日期在同一范围内,并且状态为C(关闭),则在这种情况下R_val将不同CX。
我尝试根据field_num,field,start_date联接2个表,但最终结果错误,因为日期不一定总是匹配。
以下是与示例field_num,字段组合相同的输入
表A
field_num field startdate end_date val qual ref flag
XXX112 123456 10/02/2016 12/02/2016 10 IND PRE C
XXX112 123456 10/02/2017 12/02/2017 10 IND PRE C
XXX112 123456 05/02/2018 08/02/2018 20 IND PRE C
XXX112 123456 01/01/2019 NULL 30 IND PRE O
表B
field_num field startdate end_date val qual ref flag
XXX112 123456 01/01/2017 NULL RX NULL R O
XXX112 123456 10/02/2016 12/02/2016 CX NULL R C
Expected_Output
field_num field startdate end_date val qual ref flag R_val
XXX112 123456 10/02/2016 12/02/2016 10 IND PRE C CX
XXX112 123456 10/02/2017 12/02/2017 10 IND PRE C RX
XXX112 123456 05/02/2018 08/02/2018 20 IND PRE C RX
XXX112 123456 01/01/2019 NULL 30 IND PRE O RX
任何帮助将不胜感激。