第一次接触SAS,只学过oracle,但是现在要把下面的SAS需求
转为sql server,其中da1和 linkname3 是一个表,下面的两端代码是什么意思,我没有看懂,头疼。
代码一如下:
DATA D1;
SET da1;
drop lock_ind ;
by party_id evt_dt end_dt ;
if end_dt = "1900-01-03" then status ="未结";
if first.party_id then count = 0;
count+1;
run;
代码二如下:
data linkname4
set linkname3;
by party_id evt_dt rating_dt;
if last.evt_dt ;
run;
对于代码一:
- DATA D1:将结果存储到名为D1的dataset中。
- SET da1:从名为da1的dataset中获取数据。
- DROP lock_ind:删除名为lock_ind的变量。
- BY party_id evt_dt end_dt:按照party_id、evt_dt和end_dt变量进行排序。
- IF end_dt = "1900-01-03" THEN status ="未结":如果end_dt等于"1900-01-03",则将status设为"未结"。
- IF first.party_id THEN count = 0:如果是相同的party_id,则将count设置为0。
- count+1:将count加1。
对于代码二:
- DATA linkname4:将结果存储到名为linkname4的dataset中。
- SET linkname3:从名为linkname3的dataset中获取数据。
- BY party_id evt_dt rating_dt:按照party_id、evt_dt和rating_dt变量进行排序。
- IF last.evt_dt:如果是相同的party_id和rating_dt,则将其设为last.evt_dt。
- RUN:运行程序。
希望以上解答能够帮助你理解代码的含义。