【发布时间】:2026-01-02 06:10:02
【问题描述】:
我有 2 个数据集:
|ColA|ColB
|date1|1
|date2|2
|date3|3
|cola|colb|colc.....|colz|
|blaa|blaa|blaaaaaaa|date1
|blab|blab|blaaaaaab|date1
|blac|blac|blaaaaaac|date1
|blaa|blaa|blaaaaaaa|date2
|blag|blag|blaaaaaag|date3
我想要的是每个日期的数字等于第一个表的数字
|cola|colb|colc.....|colz |ColZ+1
|blaa|blaa|blaaaaaaa|date1|1
|blab|blab|blaaaaaab|date1|1
|blac|blac|blaaaaaac|date1|1
|blaa|blaa|blaaaaaaa|date2|2
|blag|blag|blaaaaaag|date3|3
我尝试过的:
proc sql;
create table merged_dpd_raw_2602_B
as select a.*, b.delnum
from merged_dpd_raw_2602 a
left join work.date_transform b
on datepart(a.reporting_date) = datepart(b.DATE)
;quit;
它只在上个月添加一个数字。所有其他月份都有一个“。” .
proc sort data=date_transform;
by formatted_date;
run;
proc sort data=merged_dpd_raw_2602;
by formatted_date;
run;
data merged_dpd_raw_2602_B;
merge date_transform(in=A) merged_dpd_raw_2602(in=B);
by formatted_date;
if A=1 and B=1;
run;
正确合并,但我以某种方式丢失了 310k 数据条目。
【问题讨论】:
-
“多对一”是您真正想要的词,因为它的价值(顺序很重要)。