Sql SAS-跨数据复制帐号

Sql SAS-跨数据复制帐号,sql,sas,proc-sql,Sql,Sas,Proc Sql,我有这样一个数据集: AcntNum name date 100 abc 12/01 abc2 12/02 abc3 12/03 101 abc4 12/04 abc5 12/05 abc6 12/06 我正在尝试完成以下结果数据集: 结果: 请建议采用什么方法 谢谢,可能有更好的方法,但您可以尝试以下方法: data raw1;

我有这样一个数据集:

AcntNum  name  date
100      abc   12/01
         abc2  12/02
         abc3  12/03
101      abc4  12/04
         abc5  12/05
         abc6  12/06
我正在尝试完成以下结果数据集: 结果:

请建议采用什么方法


谢谢,

可能有更好的方法,但您可以尝试以下方法:

data raw1;                                                                                                                              
set raw ;                                                                                                                               
retain group;                                                                                                                           
if( _n_ = 1) then group = 0;                                                                                                            
if (acct ne .) then group = group +1;                                                                                                   
run;                                                                                                                                    



data raw2;                                                                                                                              
set raw1;                                                                                                                               
retain acct2;                                                                                                                           
by group;                                                                                                                               
if first.group then acct2 = acct;                                                                                                       
run; 

您需要使用RETAIN和另一个变量。这里有一个方法

data want;
  set have;
  retain acntnum2;
  acntnum=coalesce(acntnum,acntnum2);
  acntnum2=acntnum;
run;

第一个结果集看起来像带有合并单元格的报表。日期总是在分组中递增吗?因此没有100 12/07因为本机proc sql中的限制,这在数据步骤中更容易完成-除非数据已经在数据库中。请展示您尝试过的内容。正如@Gordon所指出的,数据步骤的答案可能更简单,你对此持开放态度吗?是的,我可以使用数据步骤。我能用比我的答案好得多的保留语句吗
data want;
  set have;
  retain acntnum2;
  acntnum=coalesce(acntnum,acntnum2);
  acntnum2=acntnum;
run;