我在SAS中创建了一个存储过程,提示用户选择月份/年份组合,如下所示:2015_10
。然后从下一个框中,他们可以点击一个日历,并选择一个时间戳的startdate,enddate也是一个时间戳。SAS条件执行过程sql
我想结合这一步,用户只选择开始和结束日期。但是,我的源表位于SQL Server中,并且表格按月份进行分区,并且这些表格的名称类似于此datatabel_2015_10
,其中最后两位数字表示月份。一旦用户选择月份,我有proc sql查询该表,然后在那之后有另一个查询来只拉起落在开始日期和结束日期之间的行,这些行是time1和time2作为字符串存储在MS SQL中看起来像这样的服务器30JAN2015:19:52:29
我该如何编码以消除月/年提示,并且只有两个选择,即startdatetime
和enddatetime
,并且仍然可以查询。 连接每月表不是一个选项,因为它们非常庞大,即使使用传递查询也会永久运行。 请帮忙。 感谢
LIBNAME SWAPPLI ODBC ACCESS=READONLY read_lock_type=nolock noprompt="driver=SQL server; server=XXX; Trusted Connection=yes; database=XXX" schema='dbo';
proc sql;
create table a as
select
startdate_time,
enddate_time
from SWAPPLI.SQL_DB_2015_10
quit;
proc sort data=a out=b;
by startdate_time, enddate_time
where enddate_time between "&startdate"dt and "&enddate"dt;
run;
请附上您的存储过程的代码的相关部分的问题 – mjsqu
LIBNAME SWAPPLI ODBC ACCESS = READONLY read_lock_type = NOLOCK NOPROMPT = “司机= SQL服务器; 服务器= XXX; 信任连接= YES; 数据库= XXX”模式= 'DBO'; proc sql; 创建表格为 select startdate_time,enddate_time from SWAPPLI.SQL_DB_2015_10 quit; proc sort data = a out = b; by startdate_time,enddate_time 其中enddate_time位于“&startdate”dt和“&enddate”dt之间; 跑; – user601828