楼主: lixqji
6388 24

[原创博文] 在线等:如何补齐日期缺省值? [推广有奖]

21
weberxu 发表于 2012-2-22 10:01:45
你把retain后的变量,变为你的日期变量,不就是可以保存了。直接输出就好了。用output。

22
zhangzachary 发表于 2012-2-22 11:07:32
lixqji 发表于 2012-2-21 19:51
谢谢,这是解决这个问题的一个方法。可是,当stkcd的号码很多时候,特别还是不连续的时候,比如000001、6 ...
  1. proc sql noprint;
  2. create table a as
  3. select distinct t.id, tt.dt format=yymmdd10., 0 as ret from test t, test tt;
  4. quit;

  5. proc append base=test data=a;
  6. run;

  7. proc sort data=test nodupkey;
  8. by no dt;
  9. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

23
lixqji 发表于 2012-2-22 11:29:06
zhangzachary 发表于 2012-2-22 11:07
可否将程序补充完整,我试着构建t和tt,但是结果并不如人意,总是

ERROR: Column id could not be found in the table/view identified with the correlation name T.
171  quit;


在select 语句出错

24
zhangzachary 发表于 2012-2-22 11:32:43
lixqji 发表于 2012-2-22 11:29
可否将程序补充完整,我试着构建t和tt,但是结果并不如人意,总是

ERROR: Column id could not be fo ...
我写id你别跟着我写……改成no就行了……
已有 1 人评分学术水平 热心指数 收起 理由
lixqji + 1 + 1 分析的有道理

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

25
lixqji 发表于 2012-2-22 12:45:51
zhangzachary 发表于 2012-2-22 11:32
我写id你别跟着我写……改成no就行了……
谢谢!

data test;
format no 1.0;
format dt yymmdd10.;
input no dt :yymmdd10. ret @@;
cards;
    1 2001-01-01 0.02
    1 2001-03-01 0.03
    1 2001-04-01 0.02
    5 2001-01-01 0.02
    5 2001-02-01 0.03
    5 2001-04-01 0.02
    9 2001-02-01 0.02
    9 2001-03-01 0.03
    9 2001-04-01 0.02
    ;
run;

proc sql noprint;
        create table a as
        select distinct t.no, tt.dt format=yymmdd10., 0 as ret from test t, test tt;
quit;

proc append base=test data=a;
run;

proc sort data=test nodupkey;
by no dt;
run;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 05:41