2016-09-13 80 views
0

我想使用如下where子句子集数据子句:SAS SQL凡别名失败

proc sql outobs=100; 
create table Dbtr_Clnt_Generl_Inf as 
    select FACS_Schema_ID '', 
     'DBACCT*'n as ACCOUNT_NUM '', 
     input(DBLSTDTI,yymmdd10.) as Date_Listed format=date09. 
    from sqlsrv10.Acct_Dbtr_Clnt_Generl_Inf 
    where Date_Listed >= '01Sep2016'd 
    ; 
quit; 

但我得到一个错误:错误:以下列没有起作用的表中找到:Date_Listed。

回答

1

在PROC SQL中,您需要在引用派生变量时使用CALCULATED关键字。

where calculated Date_Listed >= '01Sep2016'd 

或者只是引用原始变量,而不是派生一个

where DBLSTDTI='2016-09-01' 
+0

这需要很长的时间来处理100个观测。我取消了查询。 – scottlittle

+0

你是从数据库中拉出来的吗?然后您需要使用格式,以便数据库可以处理WHERE子句。试试DBLSTDTI ='2016-09-01'。或者使用显式传递查询。 – Tom

+0

但由于它是一个字符串,我只能等同于一个字符串,但不能使用大于(>)某个日期。我有一个LIBNAME连接到我的数据库。 DBLSTDTI作为日期存储在SQL Server数据库中,但对表Acct_Dbtr_Clnt_Generl_Inf的LIBNAME连接sqlsrv10在我查看属性时说它是一个文本字段。 – scottlittle