Sas 从某一日期开始合并

Sas 从某一日期开始合并,sas,Sas,我正在尝试合并两个表。表A有一个id列、一个日期列和一个期间内每个日期的金额值 表B既有id和日期,也有其他包含详细信息的列。但是,每当细节发生变化时,只有一个条目,因此我不知道如何与普通联接合并。我希望对于A中的每个条目,在A中的日期之前,从B中该ID可用的最后一天开始填充详细信息 Table A | ID | date | amount | | 1 | 01JAN| 56 | | 1 | 02JAN| 54 | | 1 | 03JAN| 23 | | 1 |

我正在尝试合并两个表。表A有一个id列、一个日期列和一个期间内每个日期的金额值

表B既有id和日期,也有其他包含详细信息的列。但是,每当细节发生变化时,只有一个条目,因此我不知道如何与普通联接合并。我希望对于A中的每个条目,在A中的日期之前,从B中该ID可用的最后一天开始填充详细信息

Table A
| ID | date | amount |
| 1  | 01JAN| 56     |
| 1  | 02JAN| 54     |
| 1  | 03JAN| 23     |
| 1  | 04JAN| 43     |

Table B
| ID | date | details|
| 1  | 01JAN|    x   |
| 1  | 03JAN|    y   |
想要的产出

Table A
| ID | date | amount | details |
| 1  | 01JAN| 56     |   x     |
| 1  | 02JAN| 54     |   x     |
| 1  | 03JAN| 23     |   y     |
| 1  | 04JAN| 43     |   y     |
对于1月2日的条目,截至该日期的最新可用详细信息为“x”,对于1月3日的条目为“y”


提前感谢您提供的任何指导

这将适用于您提出的问题:

data want;
  retain details_last;
  merge table1 table2;
  by ID date;
  if not missing(details) then details_last = details;
  else details = details_last;
  drop details_last;
run;

但只有当您的数据满足您提出的条件时,这才有效,如表B中的日期范围应始终在表A中的日期范围内,而不是在表A之外(即,仅插值,无外推)

你能添加一些数据吗examples@SanekZhitnik您可以使用retain语句来准备表B。然后使用merge语句。谢谢!这只是插值(对于任何ID,表A中的最新日期总是晚于表B中的最新日期)。有不止一个细节栏(detail1、detail2等),但我将尝试调整它。