楼主: Amandanannn
1680 4

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

  • 0关注
  • 1粉丝

本科生

6%

还不是VIP/贵宾

-

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

楼主
Amandanannn 发表于 2016-2-2 05:54:09 |AI写论文
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
拉您进交流群
GMT+8, 2026-1-4 13:46