【发布时间】:2017-10-05 15:38:31
【问题描述】:
我有两个代码,一个是 proc sql,另一个是 proc 和 datastep。两者都是相互关联的数据集。
下面是 proc sql 行。
create table new as select a.id,a.alid,b.pdate from tb a inner join
tb1 act on a.aid =act.aid left join tb2 as b on (r.alid=a.alid) where
a.did in (15,45); quit;
下面是从上面的 datatset new 创建的 proc 和 datasteps。
proc sort data = new uodupkey;
by alid;
data new1;
set new;
format ddate date9.
dat1=datepart(today);
datno=input(number,20.);
key=_n_;
rename alid blid;
run;
proc sort data=new1 nodupkey;
by datno dat1;
run;
我需要将所有内容放入单个 proc sql 步骤中。
【问题讨论】:
-
你真的需要使用记录的顺序生成KEY变量吗?您可以尝试使用不受支持的
monotonic()函数。 -
嗨,欢迎来到 Stack Overflow。请阅读How to Ask,并修改您的问题以包含您为尝试解决此问题而编写的代码,和/或将您的问题集中在您遇到问题的具体问题上,而不是要求我们编写代码你。
-
您能解释一下为什么您目前使用 PROC SORT 和 NODUPKEY 选项吗?每个 ALID 值是否有多个观察值?只选择其中一个的标准是什么?
-
你能更好地解释你的问题吗?还包括一些示例输入和输出数据,以演示您要解决的问题。请注意,您发布的代码有拼写错误,并且 SQL 代码和数据以及 proc 步骤似乎没有引用相同的表,因为变量名称不同。
标签: sas