楼主: bflly1234
572 2

[问答] SAS报表之日期问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

本科生

77%

还不是VIP/贵宾

-

威望
0
论坛币
2213 个
通用积分
0.0982
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
495 点
帖子
8
精华
0
在线时间
217 小时
注册时间
2011-2-11
最后登录
2024-10-4

楼主
bflly1234 发表于 2023-1-19 06:44:20 |AI写论文
50论坛币
data _null_;
today=today();
year=year(today);
this_week=week(today)-1;
call symput( 'currentyear', year);
call symput('this_week', this_week);
run;


proc sql;

   connect to oracle as oracle_tables

      (user = USERID  orapw = PASSWORD  path ="INSTANCE");

      create table test as

      select * from connection to oracle_tables

      (select  * from abc.table

           where complete_year in (&currentyear)

                      and complete_week in (&this_week));

   disconnect from oracle_tables;

quit;


表中包含很多列,都需要通过pass through facility拿到。日期方面包括详细完成的日期,年份,星期等。我现在想到的方法可以拿到上一周的周日到周六的所有交易,但是一旦跨年了就有个小bug,每年第一周的时候this_week=0,会报错。悬赏看下大家怎么制作周度报表,尤其是怎么解决一周两三天在上一年,其它三四天在新年。


最佳答案

HXAI102230 查看完整内容

增加下面一句在“this_week=week(today)-1;“之后可以实现吗? if week=0 then do; year=year(today)-1; this_week=week(mdy(12,31,year)); end;
关键词:SAS报表 Disconnect connection Complete Facility

沙发
HXAI102230 在职认证  发表于 2023-1-19 06:44:21
此帖仅作者可见

藤椅
HXAI102230 在职认证  发表于 2023-1-19 11:06:44
此帖仅作者可见

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

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