楼主: Amandanannn
1412 4

一段SAS code求解,多谢多谢! [推广有奖]

  • 0关注
  • 1粉丝

本科生

6%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
16704 点
帖子
40
精华
0
在线时间
79 小时
注册时间
2015-12-12
最后登录
2018-7-13

1论坛币
利用SAS在program中计算Term_Unit的时候,想用SQL写出来,就写出了如下的code:
proc sql;
create table term_unit_sql as
select business_section,subscription_year,subscription_number,vehicle_number,
substr(postal_code,1,1) in ("K","L","M","N","P") THEN Province="ON"
else Province="XX",
TERM_UNIT=ROUND((mdy(input(substr(expiry_date,5,2),2.),
                                        input(substr(expiry_date,7,2),2.),
                                        input(substr(expiry_date,1,4),4.))
                                -mdy(input(substr(effective_date,5,2),2.),
                                        input(substr(effective_date,7,2),2.),
                                        input(substr(effective_date,1,4),4.)))/365.25,.1);
quit;

试过之后Log里面总有这样的错误提示:
substr(postal_code,1,1) in ("K","L","M","N","P") THEN Province="ON"
                                                                   ----
                                                                    22
                                                                    76

ERROR 22-322: Syntax error, expecting one of the following: a quoted string, !, &, ',', AND, AS,
              FORMAT, FROM, INFORMAT, INTO, LABEL, LEN, LENGTH, OR, TRANSCODE, |.
ERROR 76-322: Syntax error, statement will be ignored.


[cry]求解!!

如果在sql中写data step,可以吗? 或者有啥说法??

跪谢跪谢!![em49]

最佳答案

乐天米 查看完整内容

as Provibce 前面加上end ,我忘记了。。
关键词:code COD ODE Subscription Effective
沙发
乐天米 发表于 2016-2-2 05:54:10 |只看作者 |坛友微信交流群
乐天米 发表于 2016-2-2 15:49
proc sql;
create table term_unit_sql as
select business_section,subscription_year,subscription_n ...
as Provibce 前面加上end ,我忘记了。。

使用道具

藤椅
yvette_sw 发表于 2016-2-2 09:55:47 |只看作者 |坛友微信交流群
不应该是case when 叻才能then麽...

使用道具

板凳
乐天米 发表于 2016-2-2 15:45:17 |只看作者 |坛友微信交流群
你那个P确定不要小写?

使用道具

报纸
乐天米 发表于 2016-2-2 15:49:28 |只看作者 |坛友微信交流群
proc sql;
create table term_unit_sql as
select business_section,subscription_year,subscription_number,vehicle_number,
case when substr(postal_code,1,1) in ("K","L","M","N","P") then "ON" else "XX" as Province,
ROUND((mdy(input(substr(expiry_date,5,2),2.),
                                         input(substr(expiry_date,7,2),2.),
                                         input(substr(expiry_date,1,4),4.))
                                 -mdy(input(substr(effective_date,5,2),2.),
                                         input(substr(effective_date,7,2),2.),
                                         input(substr(effective_date,1,4),4.)))/365.25,.1) as TERM_UNIT
from  哪一个dataset;
quit;
已有 1 人评分论坛币 收起 理由
happy_287422301 + 60 鼓励积极发帖讨论

总评分: 论坛币 + 60   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-26 13:56