楼主: wayne0524
2752 1

[问答] SAS 高手进!过程步定义新产生字段的格式问题! [推广有奖]

  • 25关注
  • 6粉丝

讲师

40%

还不是VIP/贵宾

-

威望
0
论坛币
4529 个
通用积分
8.3706
学术水平
30 点
热心指数
44 点
信用等级
30 点
经验
8310 点
帖子
367
精华
0
在线时间
488 小时
注册时间
2007-2-3
最后登录
2022-11-2

15论坛币
                                                                                                                                                                                                                                                     
proc sql;                                                                                                                                                                create table mo.D_paid_01  as  select   a.claimno , b.Flag_date_0 as  paid_time     
       from   mo.c_wj group   a  left join  (select claimno    ,max(Flag_date_0) as Flag_date_0   from   mo.c_yj  group by 1 ) b   on a.claimno=b.claimno  ;                                                                                                                                             quit;                                                                                                                                                                                                                                                           
代码如上,关键是加粗的paid_time的字段定义问题。flag_date_0在 表 mo.c_yj中 定义的是标准的日期格式(即2010-12-31)但是拼接以后,我把Flag_date_0重新命名为paid_time后,成表mo.D_paid_01的paid_time字段变成了数字格式,(当然我知道下面可以再用一个data 步定义paid_time让其显示为我想要的日期格式),
我想 请问高手的就是,有没有能直接在上面过程步中直接加代码对 paid_time定义为YYMMDD格式,让其直接显示??
请高手直接修改程序,求赐教!























最佳答案

yongyitian 查看完整内容

try this: proc sql; create table mo.D_paid_01 as select a.claimno , b.Flag_date_0 as paid_time format = yymmdd10. from mo.c_wj group a left join (select claimno, max(Flag_date_0) as Flag_date_0 from mo.c_yj group by 1 ) b on a.claimno=b.claimno; quit;
关键词:left join proc sql Select Create claim
沙发
yongyitian 发表于 2013-8-17 10:53:17 |只看作者 |坛友微信交流群
try this:

proc sql;      
    create table mo.D_paid_01  as  
    select  a.claimno ,  b.Flag_date_0 as  paid_time format = yymmdd10.  
    from   mo.c_wj group   a  
     left join  (select claimno, max(Flag_date_0) as Flag_date_0   
                 from   mo.c_yj  
                 group by 1 ) b
     on a.claimno=b.claimno;
quit;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
wayne0524 + 1 + 1 + 1 就是它

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

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 13:18