sql - 使用proc sql创建表时如何调用选择日期范围的提示?
问题描述
我想问一下如何在创建表的proc sql中调用提示(我正在使用SAS Enterprise Guide)。我有兴趣将一个数字关联到日期月份(如下表所示),其中可以使用提示选择 d_month。
time_window d_month database_name table_name short_name group_field field field_list
1 '2018-02-28' Dtb1 table1 Tab1 date_month department Tab1.id Tab1.balance id balance
1 '2018-02-28' Dtb1 table2 Tab2 date_month Tab2.credit credit
...
2 '2018-03-31' Dtb1 table3 Tab3 date_month department Tab3.debit debit
2 '2018-03-31' Dtb2 table4 Tab4 date_month department ...
我用了
proc sql noprint;
select time_w into time_w_lower from &time_table..time_table where time_last="&time_win_min_end"d;
quit;
proc sql noprint;
select time_w into time_w_upper from &time_table..time_table where time_last="&time_win_max_end"d;
quit;
创建最小和最大日期(这应该与提示相同),但是当我为新表选择字段时,我不知道如何使用此信息。时间和日期月份 ( d_month
) 在一个表 ( &time_table..time_table
) 中,而其他字段在另一个表 ( &dtb..&input.
) 中。我尝试的是:
proc sql;
create table table_test4 as
select t.time_window
,t.d_month
,&alias..date_month
,&alias..department
,%qsysfunc(dequote(&_factor.))
from &dtb..&input. &alias.
cross join time_window t
order by 1,2,3,4;
quit;
在哪里time_window
创建的表如下:
data time_window (drop=i);
attr time_window length=8 format=11. informat=11.;
attr d_month length=14 format=$12. informat=$12.;
do =&time_w_lower. to time_w_upper.;
time_window=left(put(i,4.));
d_month=CAT("'", put(intent('month',"01JAN2010"d, i-1, 'end'), YYMMDDD10.),"'");
output;
end;
run;
不幸的是,我没有可以显示的数据,因此您将提供给我的任何示例将不胜感激。
感谢您的时间。
解决方案
推荐阅读
- python - 类的实例作为同一类的类成员
- python-3.x - 从原始 VTK (.vtu) 文件中读取数据
- nosql - couchbase 分析是否支持所有 N1QL 命令?
- unity3d - Unity 和 Vuforia 项目丢失,我如何编辑 apk?
- php - 使用 MySQL 数据填充 HTML 表的列和行
- python - 使用字符串将输入变量连接到另一个变量
- c# - 使用对象作为键时.Net MemoryCache Miss
- php - php-curl 重定向后不发送授权标头
- javascript - Javascript - 如果没有 setInterval 函数,这个时钟函数如何更新时间?
- jquery - 右对齐工具提示